Problema:
Você gostaria de obter a hora atual com seu fuso horário em um banco de dados PostgreSQL.
Solução:
Usaremos a função CURRENT_TIME para obter as informações atuais de horário e fuso horário. Aqui está a consulta que você escreveria:
SELECT CURRENT_TIME;
Segue o resultado da consulta:
16:10:11.232455-05
Discussão:
A função PostgreSQL
CURRENT_TIME
retorna a hora atual e o fuso horário da máquina na qual o PostgreSQL está sendo executado. É dado como um valor no 'hh:mm:ss.nnnnnn+/-tz' formato. Neste formato:- hh é uma hora de 2 dígitos.
- mm é um minuto de 2 dígitos.
- ss é um segundo de 2 dígitos.
- nnnnnn define o número de segundos fracionários (ou seja, a precisão) de 0 a 6.
- +tz ou -tz é o deslocamento do fuso horário, mais ou menos do UTC.
CURRENT_TIME
não tem colchetes. No entanto, se você quiser exibir a hora com uma precisão específica, você pode adicionar colchetes e colocar um número inteiro de 0 a 6. (Um argumento "0" não retornará segundos fracionários, "1" retornará um segundo fracionário (por exemplo, um coloque atrás do decimal), etc. Isso retornará a hora com o número declarado de segundos fracionários e o deslocamento do fuso horário. Veja o próximo exemplo:SELECT CURRENT_TIME(2) ;
Segue o resultado da consulta:
16:10:11.23-05
Este resultado contém um segundo fracionário de 2 dígitos porque colocamos 2 como argumento. O deslocamento de fuso horário aparece como positivo ou negativo (+ ou -), dependendo se o horário está adiantado ou atrasado em relação ao UTC.
O tempo retornado por esta função não muda durante as transações ou uma única consulta. É sempre a hora em que a transação começou.