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à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select sysdate-interval '1' year - interval '8' day from dual;
avec ceci je récupère la valeur J-8 de l'année N-1, sous un format DATE normal.

Ensuite,
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');
Donc, le substr sert à récupérer uniquement la partie intéressante , jour + mois + année.

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 :
ORA-00933 :
La commande SQL ne se termine pas correctement
Donc, j'aimerais bien savoir si ma méthode semble/est bonne et s'il y a moyen de l'améliorer ?

Merci