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