-
Manipulation des dates
Bonjour,
Après avoir longuement réfléchi et cherché sur le forum je ne trouve pas la solution à ce problème:
Je récupère dans une table une DateTime (DTTM), et je voudrais vérifier si d'une part il s'agit de la veille de la date courant, et d'autre part si cette date fait partie des 6 derniers mois. L'heure n'a aucune importance.
Je tourne sous oracle 9i...
Merci d'avance !
-
Connaissant mal les spécificités d'Oracle, je te donnerai une réponse normalisée SQL-2003 :
La veille :
Code:
CAST(madate AS date) = CURRENT_DATE - 1
Dans les six derniers mois :
Code:
CAST(madate AS date) BETWEEN CURRENT_DATE - INTERVAL '6' MONTH AND CURRENT_DATE
-
Bonsoir,
Pour vérifier si elle est supérieure à la veille
taDate > to_date(sysdate-1,'ddmm-yyyy')
ou taDate > sysdate-1
pour les 6 derniers mois, utiliser la fonction add_months
taDate between add_months(sysdate,-6) and sysdate
add_months(dateVoulue,nbMois)
Essaies ca
-
Merci, mais finallement ca marche avec ca:
TO_DATE (SYSDATE, 'DD/MM/YYYY') - TO_DATE (c.logindttm, 'DD/MM/YYYY') = 1 pour la veille
et
TO_DATE (SYSDATE, 'DD/MM/YYYY') - TO_DATE (c.logindttm, 'DD/MM/YYYY') BETWEEN 1 AND 183 pour les 6 mois
Evidemment c'est aproximatif, mais ca convient à mon projet.