Bonjour,
je dois récupérer des informations à partir de leur date.
La formule relative à ces dates est la suivante : A un jour J, on récupère les infos depuis J-8 de l'année N-1 jusqu'au jour J-8 de l'année N.
Un des problèmes étant que le format "date" de la table est en VARCHAR2, de type 20110101 010101 pour : 1er janvier 2011 à 1h, 1min et 1s.
Donc j'ai essayé ça déjà :
avec ceci je récupère la valeur J-8 de l'année N-1, sous un format DATE normal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select sysdate-interval '1' year - interval '8' day from dual;
Ensuite,
Donc, le substr sert à récupérer uniquement la partie intéressante , jour + mois + année.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select to_char(to_date(substr(<champDate>,1,8), 'YYYYMMDD') - interval '1' year - interval '8' day, 'YYYYMMDD HH24MISS') as nouvelleDate from nomTable, dual WHERE nouvelleDate < <champDate> <= to_char(sysdate - interval '8' day, 'YYYYMMDD HH24DDSS');
Et ensuite j'avoue qu'avec toutes ces parenthèses, j'ai du mal à m'y retrouver.
Surtout que j'ai un message d'erreur :
Donc, j'aimerais bien savoir si ma méthode semble/est bonne et s'il y a moyen de l'améliorer ?ORA-00933 :
La commande SQL ne se termine pas correctement
Merci
Partager