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.