Problema:
Você gostaria de obter a data e hora atuais em um banco de dados PostgreSQL. Você não precisa do deslocamento de fuso horário.
Solução:
Usaremos a função
LOCALTIMESTAMP
para obter a data e hora atuais sem nenhuma informação de fuso horário:SELECT LOCALTIMESTAMP ;
Segue o resultado da consulta:
2019-09-24 20:10:58.977914
Discussão:
A função PostgreSQL
LOCALTIMESTAMP
retorna a data e hora atuais (da máquina que executa essa instância do PostgreSQL) como um timestamp valor. Ele usa o 'AAAA-MM-DD hh:mm:ss.nnnnnnn ' formato, onde:- AAAA é um ano de 4 dígitos.
- MM é um mês de 2 dígitos.
- DD é um dia de 2 dígitos.
- hh é uma hora de 2 dígitos.
- mm é um minuto de 2 dígitos.
- ss é um segundo de 2 dígitos.
- nnnnnn são segundos fracionários (de zero a precisão de 6 dígitos).
Como você notou, esta função não tem colchetes. No entanto, se você deseja exibir a data e a hora com uma precisão específica, coloque um número inteiro de 0 a 6 como argumento entre colchetes. Isso retornará a data e a hora com o número desejado de segundos fracionários. Por exemplo,
LOCALTIMESTAMP(1)
denota apenas um segundo fracionário (ou seja, uma casa após o decimal); 2 retornará dois lugares, etc. A precisão padrão é 6, que também é o número máximo de segundos fracionários; isso é o que você obtém se você não usar colchetes. Veja o próximo exemplo:SELECT LOCALTIMESTAMP(0) ;
Segue o resultado da consulta:
2019-09-24 20:10:58
Este resultado não contém segundos fracionários porque colocamos 0 como argumento.
Esta função retorna a hora em que a transação atual foi iniciada. A diferença entre
LOCALTIMESTAMP
e CURRENT_TIMESTAMP
é que o LOCALTIMESTAMP
não inclui o deslocamento de fuso horário.