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

Como converter uma string em um carimbo de data/hora no PostgreSQL

Problema:


Você gostaria de converter uma string contendo informações de data e hora em um carimbo de data/hora no PostgreSQL.

Vamos converter uma string contendo informações de data, hora e fuso horário para o tipo de dados timestamptz.

Solução:


Usaremos o TO_TIMESTAMP() função. Aqui está a consulta que você escreveria:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss')
          AS  new_timestamptz;

Segue o resultado da consulta:
new_timestamptz
2018-08-27 15:23:45+02

Discussão:


Use a função PostgreSQL TO_TIMESTAMP() quando você deseja converter uma string contendo dados de data e hora para o timestamp tipo de dados. Esta função recebe dois argumentos:uma string contendo uma data e hora (no nosso exemplo, o texto '2018/08/27/15:23:45 ') e o formato de entrada (no nosso exemplo, 'YYYY/MM/DD/HH24:MI:ss '). O formato de entrada indica como os caracteres na string devem ser convertidos. Aqui estão os principais elementos do padrão acima:
  • AAAA representa um ano de 4 dígitos.
  • MM representa um mês de 2 dígitos.
  • DD representa um dia de 2 dígitos do mês.
  • HH24 representa uma hora de 2 dígitos (de 00 a 23).
  • MI representa um minuto de 2 dígitos (de 00 a 59).
  • ss representa um segundo de 2 dígitos (de 00 a 59).

Observe que usamos barras (/) como delimitadores de parte de data e dois pontos (:) como delimitadores de parte de hora. Você pode encontrar uma lista completa de elementos de padrão de data e hora na documentação do PostgreSQL.

Observe que o formato de entrada é uma string. A função TO_TIMESTAMP() retorna um timestamptz valor com informações de fuso horário.

Em nosso exemplo, o texto data e hora '2018/08/27/15:23:45 'foi convertido para o timestamp valor 2018-08-27 15:23:45+02 . O carimbo de data e hora tipo de dados é mais legível.