PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como obter a data e hora atuais (sem fuso horário) no PostgreSQL

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.