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