PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So konvertieren Sie einen Unix-Zeitstempel in einen Datums-/Uhrzeitwert in PostgreSQL

In PostgreSQL können wir den to_timestamp() verwenden Funktion zum Konvertieren eines Unix-Zeitstempelwerts in einen Datums-/Uhrzeitwert.

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.

Beispiel

Hier ist ein einfaches Beispiel zur Veranschaulichung:

SELECT to_timestamp(1912995045);

Ergebnis:

2030-08-15 03:30:45+00

In diesem Fall habe ich einen bestimmten Unix-Zeitstempelwert übergeben.

Hier ist ein weiteres Beispiel, das weiter zeigt, wie das Ergebnis den bereitgestellten Unix-Zeitstempelwert widerspiegelt:

SELECT 
    now() AS "Current Date/Time",
    extract(epoch from now()) AS "Unix Timestamp",
    to_timestamp(extract(epoch from now())) AS "And back again...";

Ergebnis:

       Current Date/Time       |  Unix Timestamp   |       And back again...       
-------------------------------+-------------------+-------------------------------
 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00

In diesem Beispiel haben wir now() verwendet zur Ausgabe des aktuellen Datums und der Uhrzeit. Wir haben dann extract() verwendet um den Unix-Zeitstempel aus diesem Datums- und Zeitwert zu erhalten. Schließlich haben wir to_timestamp() verwendet um es wieder in den ursprünglichen Datums- und Uhrzeitwert umzuwandeln.

In Datum umwandeln

Wir können das Ergebnis auch als date umwandeln Wert, um den Zeitteil zu eliminieren:

SELECT to_timestamp(1912995045)::date;

Ergebnis:

2030-08-15