I PostgreSQL kan vi använda extract() fungerar tillsammans med epoch argument för att returnera Unix-tidsstämpeln.
Vi kan returnera Unix-tidsstämpeln baserat på aktuellt datum/tid, eller så kan vi få det baserat på ett annat angivet datum/tid.
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).
Hämta den aktuella Unix-tidsstämpeln
Här är ett exempel på hur du får Unix-tidsstämpeln från det aktuella datumet och tiden:
SELECT extract(epoch from now()); Resultat:
1650152298.430101
Datumvärden
Här är ett exempel på att få Unix-tidsstämpeln från ett angivet date värde:
SELECT extract(epoch from date '2030-08-15'); Resultat:
1912982400
När den används med date värden, epoch returnerar det nominella antalet sekunder sedan 1970-01-01 00:00:00, utan hänsyn till tidszon eller regler för sommartid.
Tidsstämpelvärden
Här är ett exempel på hur du hämtar Unix-tidsstämpeln från en specificerad timestamp värde:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45'); Resultat:
1912995045
När den används med timestamp värden, epoch returnerar det nominella antalet sekunder sedan 1970-01-01 00:00:00, utan hänsyn till tidszon eller regler för sommartid. Detta är samma sak som när du använder date värden.
Tidsstämpel med tidszonsvärde
Här är ett exempel på hur du hämtar Unix-tidsstämpeln från en specificerad timestamp with time zone värde:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
); Resultat:
1913023845.12
När den används med timestamp with time zone värden, epoch returnerar antalet sekunder sedan 1970-01-01 00:00:00 UTC (negativt för tidsstämplar före det)
Intervaller
Vi kan också få en Unix-tidsstämpel från ett interval värde:
SELECT extract(epoch from interval '7 days 2 hours'); Resultat:
612000
När den används med interval värden, epoch returnerar det totala antalet sekunder i intervallet.