Frage

Ich habe die folgende Tabelle:

SQL> desc recording
 Name                 Null?    Type
 -------------------- -------- ------
 CAPTUREID            NOT NULL NUMBER(9)
 STARTDATE            NOT NULL DATE
 ENDDATE                       DATE
 STATE                         NUMBER(1)
 ESTIMATEDENDTIME              NUMBER(13)

Hier ist eine einzige Zeile für diese Tabelle:

SQL> select * from recording where CAPTUREID=14760457;

 CAPTUREID STARTDATE           ENDDATE             STATE ESTIMATEDENDTIME
---------- ------------------- ------------------- ----- ----------------
  14760457 29/09/2010 08:50:01 29/09/2010 09:52:04     0    1285746720000

Ich bin mir ziemlich sicher, dass dies wurde gefragt, so viele Male zuvor, aber alle Lösungen, die ich gefunden habe bisher nicht wirklich Arbeit, so ... Wie konvertiere ich ESTIMATEDENDTIME von seiner ursprünglichen Epoche Form eines DD/MM/YYY HH:MI:SS Format in einer einzigen Abfrage in SQLPLUS?

Danke!

War es hilfreich?

Lösung

In Oracle, das Hinzufügen X zu einem DATE kehren Sie einen DATE X Tage später.

Wenn ESTIMATEDENDTIME Millisekunden seit Epoch dann könnte man tun

DATE '1970-01-01' + ( 1 / 24 / 60 / 60 / 1000) * ESTIMATEDENDTIME

und verwenden Sie dann to_char das richtige Format des resultierenden Zeitpunkt zu erreichen. z:

SELECT 
  captureid
, startdate
, enddate
, state
, estimatedendtime
, DATE '1970-01-01' + ( 1 / 24 / 60 / 60 / 1000) * estimatedendtime AS estimatedenddate
FROM recording

Andere Tipps

select ((timestamp_coloum_name - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400)) from any_table;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top