12

次の表があります。

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

このテーブルの 1 行を次に示します。

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

これは以前に何度も尋ねられたと確信していますが、これまでに見つけたすべての解決策は実際にはうまくいきませんでしESTIMATEDENDTIMEDD/MM/YYY HH:MI:SS. SQLPLUSでクエリ?

ありがとう!

4

2 に答える 2

25

Oracle では、DATE に X を追加すると、X 日後の DATE が返されます。

ESTIMATEDENDTIME がエポックからのミリ秒である場合、次のことができます

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

次に to_char を使用して、結果の日付の正しい形式を実現します。例えば:

SELECT 
  captureid
, startdate
, enddate
, state
, estimatedendtime
, DATE '1970-01-01' + ( 1 / 24 / 60 / 60 / 1000) * estimatedendtime AS estimatedenddate
FROM recording
于 2010-09-29T09:11:57.203 に答える