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.