I PostgreSQL kan vi använda to_timestamp()
funktion för att konvertera ett Unix-tidsstämpelvärde till ett datum-/tidsvärde.
Unix-tidsstämpeln (även känd som Unix Epoch-tid, Unix-tid eller POSIX-tid) är antalet sekunder som har förflutit sedan 00:00:00 torsdagen den 1 januari 1970, Coordinated Universal Time (UTC).
Exempel
Här är ett enkelt exempel att visa:
SELECT to_timestamp(1912995045);
Resultat:
2030-08-15 03:30:45+00
I det här fallet passerade jag ett specifikt Unix-tidsstämpelvärde.
Här är ett annat exempel som ytterligare visar hur resultatet återspeglar Unix-tidsstämpelvärdet:
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 det här exemplet använde vi now()
för att mata ut aktuellt datum och tid. Vi använde sedan extract()
för att få Unix-tidsstämpeln från det datum- och tidsvärdet. Slutligen använde vi to_timestamp()
för att konvertera det tillbaka till det ursprungliga datum- och tidsvärdet.
Konvertera till datum
Vi kan även casta resultatet som ett date
värde för att eliminera tidsdelen:
SELECT to_timestamp(1912995045)::date;
Resultat:
2030-08-15