Bonjour,
Je rencontre un souci avec les dates dans Oracle (je sais, c'est pas original).
J'ai la requête suivante :
Qui me renvoie le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT CV.VALUE, TO_DATE (CV.VALUE, 'YYYY/MM/DD HH24:MI:SS') AS date_demande FROM workcase w INNER JOIN case_variable CV ON CV.tcid = w.id AND CV.variable = 'ddi_sap_date_demande' WHERE w.id = 306634
Manifestement, la requête fonctionne donc (la colonne value est de type varchar2(2000) pour info).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 VALUE = 2011/03/16 00:00:00 DATE_DEMANDE = 16/03/2011
Par contre, si je rajoute une clause where comme suit :
J'obtiens une erreur ORA-01861 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT CV.VALUE, TO_DATE (CV.VALUE, 'YYYY/MM/DD HH24:MI:SS') AS date_demande FROM workcase w INNER JOIN case_variable CV ON CV.tcid = w.id AND CV.variable = 'ddi_sap_date_demande' WHERE w.id = 306634 AND TO_DATE (CV.VALUE, 'YYYY/MM/DD HH24:MI:SS') = SYSDATE
Comment se fait-il qu'une telle erreur se produise dans le where, alors même que dans le select la conversion to_date fonctionne ?! Je veux dire, à partir du moment où la conversion du varchar2 en date fonctionne, pourquoi sa comparaison avec sysdate échoue ?
Merci d'avance.
Partager