2017-09-07 6 views
1

Ceci est la requête que je suis en train d'utiliser:PL/SQL différence extraction entre les dates dans les différents formats

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 

L'erreur que je reçois est:

ORA-00932: types de données incompatibles: prévu NUMÉRO a INTERVALLE jOUR DEUXIÈME

La colonne b.created est en format de date 09-MAR-17 10.52.23.195311 AM(TIMESTAMP) et colonne pour a.cr_mdt_abstracto r_dt est dans DATE. Puis-je obtenir de l'aide pour corriger la requête afin que la colonne b.created soit au format converti pour être extraite de a.cr_mdt_abstractor_dt?

Répondre

1

utiliser TRUNC sur CR_MDT_ABSTRACTOR_DT (TIMESTAMP) et created séparément.

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; 

Exemple de sortie:

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

Merci Kaushik! –