Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren Sie einen Unix-Zeitstempel in einen Datumswert in Oracle

In Oracle Database können wir die folgende Technik verwenden, um ein Datum von einem Unix-Zeitstempelwert zurückzugeben.

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 Beispiel für die Umwandlung eines Unix-Zeitstempels in ein DATE Wert:

SELECT 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Ergebnis:

18-APR-22

Hier verwenden wir das TO_DATE() Funktion zum Konstruieren des Datums 1970-01-01. Wir addieren dann unseren Unix-Zeitstempel zu diesem Datum, um unser Ergebnis zu erhalten. In diesem Fall verwenden wir NUMTODSINTERVAL() um den Unix-Zeitstempel in ein interval umzuwandeln Wert. Das Ergebnis ist ein DATE Wert.

Datum und Uhrzeit erhalten

Wir können den TO_TIMESTAMP() verwenden Funktion zur Ausgabe eines timestamp Wert:

SELECT 
    TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Ergebnis:

18-APR-22 10.31.13.000000 PM

Eine andere Möglichkeit, dies zu tun, ist wie folgt:

SELECT TO_CHAR( 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ), 
    'YYYY-MM-DD HH24:MI:SS'
    )
FROM DUAL;

Ergebnis:

2022-04-18 22:31:13

Hier verwenden wir den TO_CHAR() Funktion, um das von TO_DATE() zurückgegebene Ergebnis auszugeben in unserem bevorzugten Format. Diese Funktion gibt ihr Ergebnis als VARCHAR2 zurück Wert.