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.