I PostgreSQL kan vi bruge extract() fungerer sammen med epoch argument for at returnere Unix-tidsstemplet.
Vi kan returnere Unix-tidsstemplet baseret på den aktuelle dato/tid, eller vi kan få det baseret på en anden specificeret dato/tid.
Unix-tidsstemplet (også kendt som Unix Epoch-tid, Unix-tid eller POSIX-tid) er det antal sekunder, der er gået siden 00:00:00 torsdag den 1. januar 1970, Coordinated Universal Time (UTC).
Hent det aktuelle Unix-tidsstempel
Her er et eksempel på at få Unix-tidsstemplet fra den aktuelle dato og klokkeslæt:
SELECT extract(epoch from now()); Resultat:
1650152298.430101
Datoværdier
Her er et eksempel på at få Unix-tidsstemplet fra en specificeret date værdi:
SELECT extract(epoch from date '2030-08-15'); Resultat:
1912982400
Når det bruges med date værdier, epoch returnerer det nominelle antal sekunder siden 1970-01-01 00:00:00 uden hensyntagen til tidszone eller sommertidsregler.
Tidsstempelværdier
Her er et eksempel på at få Unix-tidsstemplet fra et specificeret timestamp værdi:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45'); Resultat:
1912995045
Når det bruges med timestamp værdier, epoch returnerer det nominelle antal sekunder siden 1970-01-01 00:00:00 uden hensyntagen til tidszone eller sommertidsregler. Dette er det samme, som når du bruger date værdier.
Tidsstempel med tidszoneværdi
Her er et eksempel på at få Unix-tidsstemplet fra et specificeret timestamp with time zone værdi:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
); Resultat:
1913023845.12
Når det bruges med timestamp with time zone værdier, epoch returnerer antallet af sekunder siden 1970-01-01 00:00:00 UTC (negativt for tidsstempler før det)
Intervaller
Vi kan også få et Unix-tidsstempel fra et interval værdi:
SELECT extract(epoch from interval '7 days 2 hours'); Resultat:
612000
Når det bruges med interval værdier, epoch returnerer det samlede antal sekunder i intervallet.