In PostgreSQL kunnen we de to_timestamp()
. gebruiken functie om een Unix-tijdstempelwaarde om te zetten in een datum/tijd-waarde.
De Unix-tijdstempel (ook bekend als Unix Epoch-tijd, Unix-tijd of POSIX-tijd) is het aantal seconden dat is verstreken sinds 00:00:00 donderdag 1 januari 1970 Coordinated Universal Time (UTC).
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT to_timestamp(1912995045);
Resultaat:
2030-08-15 03:30:45+00
In dit geval heb ik een specifieke Unix-tijdstempelwaarde doorgegeven.
Hier is nog een voorbeeld dat verder laat zien hoe het resultaat de verstrekte Unix-tijdstempelwaarde weerspiegelt:
SELECT
now() AS "Current Date/Time",
extract(epoch from now()) AS "Unix Timestamp",
to_timestamp(extract(epoch from now())) AS "And back again...";
Resultaat:
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
In dit voorbeeld gebruikten we now()
om de huidige datum en tijd uit te voeren. We gebruikten toen extract()
om de Unix-tijdstempel van die datum- en tijdwaarde te krijgen. Ten slotte gebruikten we to_timestamp()
om het terug te zetten naar de oorspronkelijke datum- en tijdwaarde.
Converteren naar datum
We kunnen het resultaat ook casten als een date
waarde om het tijdgedeelte te elimineren:
SELECT to_timestamp(1912995045)::date;
Resultaat:
2030-08-15