In PostgreSQL können wir den extract() verwenden Funktion zusammen mit der epoch Argument, um den Unix-Zeitstempel zurückzugeben.
Wir können den Unix-Zeitstempel basierend auf dem aktuellen Datum/der aktuellen Uhrzeit zurückgeben oder wir können ihn basierend auf einem anderen angegebenen Datum/einer anderen angegebenen Uhrzeit abrufen.
Der Unix-Zeitstempel (auch bekannt als Unix-Epochenzeit, Unix-Zeit oder POSIX-Zeit) ist die Anzahl der Sekunden, die seit Donnerstag, 1. Januar 1970, 00:00:00 Uhr, Koordinierte Weltzeit (UTC) verstrichen sind.
Aktuellen Unix-Zeitstempel abrufen
Hier ist ein Beispiel für das Abrufen des Unix-Zeitstempels aus dem aktuellen Datum und der aktuellen Uhrzeit:
SELECT extract(epoch from now()); Ergebnis:
1650152298.430101
Datumswerte
Hier ist ein Beispiel für das Abrufen des Unix-Zeitstempels von einem bestimmten date Wert:
SELECT extract(epoch from date '2030-08-15'); Ergebnis:
1912982400
Bei Verwendung mit date Werte, epoch gibt die nominale Anzahl von Sekunden seit dem 01.01.1970 00:00:00 zurück, ohne Rücksicht auf die Zeitzone oder Sommerzeit.
Zeitstempelwerte
Hier ist ein Beispiel für das Abrufen des Unix-Zeitstempels von einem angegebenen timestamp Wert:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45'); Ergebnis:
1912995045
Bei Verwendung mit timestamp Werte, epoch gibt die nominelle Anzahl von Sekunden seit 1970-01-01 00:00:00 zurück, ohne Rücksicht auf Zeitzone oder Sommerzeitregeln. Dies ist dasselbe wie bei der Verwendung von date Werte.
Zeitstempel mit Zeitzonenwert
Hier ist ein Beispiel für das Abrufen des Unix-Zeitstempels von einem angegebenen timestamp with time zone Wert:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
); Ergebnis:
1913023845.12
Bei Verwendung mit timestamp with time zone Werte, epoch gibt die Anzahl der Sekunden seit dem 01.01.1970 00:00:00 UTC zurück (negativ für Zeitstempel davor)
Intervalle
Wir können auch einen Unix-Zeitstempel aus einem interval erhalten Wert:
SELECT extract(epoch from interval '7 days 2 hours'); Ergebnis:
612000
Bei Verwendung mit interval Werte, epoch gibt die Gesamtzahl der Sekunden im Intervall zurück.