I PostgreSQL kan vi bruge to_timestamp()
funktion til at konvertere en Unix-tidsstempelværdi til en dato/tidsværdi.
Unix-tidsstemplet (også kendt som Unix Epoch-tid, Unix-tid eller POSIX-tid) er det antal sekunder, der er gået siden 00:00:00 torsdag den 1. januar 1970, Coordinated Universal Time (UTC).
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT to_timestamp(1912995045);
Resultat:
2030-08-15 03:30:45+00
I dette tilfælde bestod jeg en specifik Unix-tidsstempelværdi.
Her er et andet eksempel, der yderligere demonstrerer, hvordan resultatet afspejler Unix-tidsstempelværdien:
SELECT
now() AS "Current Date/Time",
extract(epoch from now()) AS "Unix Timestamp",
to_timestamp(extract(epoch from now())) AS "And back again...";
Resultat:
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
I dette eksempel brugte vi now()
for at udlæse den aktuelle dato og klokkeslæt. Vi brugte derefter extract()
for at få Unix-tidsstemplet fra den dato og tidsværdi. Til sidst brugte vi to_timestamp()
for at konvertere den tilbage til den oprindelige dato- og tidsværdi.
Konverter til dato
Vi kan også caste resultatet som en date
værdi for at eliminere tidsdelen:
SELECT to_timestamp(1912995045)::date;
Resultat:
2030-08-15