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

Como converter um carimbo de data/hora Unix em um valor de data/hora no PostgreSQL


No PostgreSQL, podemos usar o to_timestamp() função para converter um valor de carimbo de data/hora Unix em um valor de data/hora.

O timestamp Unix (também conhecido como Unix Epoch time, Unix time ou POSIX time) é o número de segundos decorridos desde 00:00:00 de quinta-feira, 1 de janeiro de 1970, Coordinated Universal Time (UTC).

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT to_timestamp(1912995045);

Resultado:
2030-08-15 03:30:45+00

Nesse caso, passei um valor de carimbo de data/hora do Unix específico.

Aqui está outro exemplo que demonstra ainda mais como o resultado reflete o valor do timestamp Unix fornecido:
SELECT 
    now() AS "Current Date/Time",
    extract(epoch from now()) AS "Unix Timestamp",
    to_timestamp(extract(epoch from now())) AS "And back again...";

Resultado:
       Current Date/Time       |  Unix Timestamp   |       And back again...       
-------------------------------+-------------------+-------------------------------
 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00

Neste exemplo usamos now() para emitir a data e hora atuais. Em seguida, usamos extract() para obter o timestamp Unix desse valor de data e hora. Por fim, usamos to_timestamp() para convertê-lo de volta ao valor de data e hora original.

Converter para data


Também podemos converter o resultado como uma date valor para eliminar a parte do tempo:
SELECT to_timestamp(1912995045)::date;

Resultado:
2030-08-15