2017-09-07 15 views
1

これは私が使用しようとしていますクエリです:PL/SQLは、異なる形式で日付の差を抽出

select a.cr_mdt_abstractor_dt, b.created, 
(trunc(a.CR_MDT_ABSTRACTOR_DT - b.created) || ' days and ' ||<br> 
     to_char(to_date('01/01/2000', 'MM-DD-YYYY') + (a.CR_MDT_ABSTRACTOR_DT - b.created), 
       'HH24:MI:SS' 
       ) 
     ) as Diff 
from CR_MDT a, 
CR_MDT_VERIFY b 
where a.CR_MDT_ID=b.FK_CR_MDT_ID 

私は取得していますエラーは次のとおりです。

ORA-00932:一貫性のないデータ型:予想NUMBERはb.created列が日付形式で09-MAR-17 10.52.23.195311 AM(TIMESTAMP) とa.cr_mdt_abstractoするための欄であるSECOND

TO INTERVAL DAYましたr_dtはDATEです。

b.createdカラムがa.cr_mdt_abstractor_dtから抽出するために変換されたフォーマットになるようにクエリを修正する助けを得ることができますか?

答えて

1

CR_MDT_ABSTRACTOR_DTTIMESTAMP)とcreatedとをそれぞれTRUNCとする。

SELECT a.cr_mdt_abstractor_dt, 
    b.created, 
    TRUNC(a.CR_MDT_ABSTRACTOR_DT) - TRUNC(b.created) 
    || ' days and ' 
    || TO_CHAR(to_date('01/01/2000', 'MM-DD-YYYY') + (a.CR_MDT_ABSTRACTOR_DT - b.created), 'HH24:MI:SS') AS Diff 
FROM CR_MDT a, 
    CR_MDT_VERIFY b 
WHERE a.CR_MDT_ID=b.FK_CR_MDT_ID; 

出力例:

CREATED  DIFF 
07-09-17 -182 days and 12:15:15 
+0

おかげKaushikによる! –

関連する問題