Page 1 sur 1

Différence en jours entre deux dates

Posté : 27 mai 2005, 15:29
par navis84
Bonjour !

Dans ma requête, j'aimerais sélectionner les enregistrements dont la différence entre la date de fin et la date du jour est inférieure ou égale à 30 :

Code : Tout sélectionner

SELECT * FROM abo_simple, client WHERE id_client = num_client AND TO_DAYS(date_fin) - TO_DAYS(NOW()) <= 30 ORDER BY id_client, raison_sociale, nom, prenom
Or tous les enregistrements datant du jour "30 ..." sortent ...

Si je fais :

Code : Tout sélectionner

SELECT * FROM abo_simple, CLIENT WHERE id_client = num_client AND ( DATEDIFF(date_fin, NOW()) ) <=30 ORDER BY id_client, raison_sociale, nom, prenom
Cela ne me sort pas les bons enregistrements...

Comment résoudre ce problème ?

Merci d'avance.

Posté : 27 mai 2005, 15:52
par demipoulp

Code : Tout sélectionner

AND TO_DAYS(NOW()) - TO_DAYS(champs_date) <= 30
par exemple

Posté : 27 mai 2005, 16:01
par navis84
Cela me retourne l'enregistrement qui contient la date : 2005-12-31.

Donc cela est faux...

Posté : 31 mai 2005, 04:33
par Xenon_54

Code : Tout sélectionner

SELECT * FROM abo_simple, client WHERE id_client = num_client AND DATEDIFF(NOW(),date_fin) <= 30 ORDER BY id_client, raison_sociale, nom, prenom
Malgré que je doute un peu de la syntaxe générale de ta requête puisque tu semble utiliser deux tables à la fois... Ne devrais-tu pas indiquer à quelle table appartient chacun des champs spécifiés?

;)