2017-05-04 5 views
0

Ich habe eine Spalte in meiner Tabelle (Data_type Number (16,0)), die die Epochzeit mit Millisekunden speichert.Epochen mit Millisekunden in Datumsformat in PL/SQL konvertieren

ZB: - 1491456096759

Ich möchte eine select-Anweisung schreiben, das in lesbarem Format zu formatieren, die Millisekunden enthält 'YYYY-MM-DD HH24: MI: SS.FF'.

Gibt es irgendwelche direkte Funktionen, die ich für diese Umwandlung verwenden kann?

ich bereits diese Option

select to_date('19700101', 'YYYYMMDD') + (1/24/60/60/1000) * 1491456096759 from dual;

aber nicht in der Lage zu diesem Zeitpunkt zu drucken versucht haben, in 'YYYY-MM-DD HH24: MI: SS.FF' Format

+0

Vielleicht wird dies hilfreich sein: http://stackoverflow.com/questions/37305135/oracle-convert-unix-epoch-time-to-date – kpater87

+0

Mögliche Duplikat [Oracle Unix-Epoche konvertieren Zeit Datum] (http://stackoverflow.com/questions/37305135/oracle-convert-unix-epoch-time-to-date) –

Antwort

1

Bitte versuchen Sie dies:

SELECT TO_TIMESTAMP('1970-01-01 00:00:00.0' 
        ,'YYYY-MM-DD HH24:MI:SS.FF' 
     ) + NUMTODSINTERVAL(1493963084212/1000, 'SECOND') 
FROM dual; 

Oder dies, wenn Sie eine zurückgeben möchten string:

SELECT TO_CHAR( 
     TO_TIMESTAMP('1970-01-01 00:00:00.0' 
        ,'YYYY-MM-DD HH24:MI:SS.FF' 
     ) + NUMTODSINTERVAL(1493963084212/1000, 'SECOND') 
     ,'YYYY-MM-DD HH24:MI:SS.FF') 
FROM dual; 
Verwandte Themen