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.