roadruner Posté 27 Mars 2009 Posté 27 Mars 2009 Bonsoir, J'utilise Mysql 5.0.77-community-nt Voici ma Query : SELECT lp_cont.numclient, lp_cont.numcont, lp_fic.namesociete, lp_fic.lastname, lp_fic.firstname, DATE_FORMAT(lp_cont.dateecheance,'%d-%m-%Y') as dateecheance FROM lp_cont,lp_fic WHERE (lp_cont.numclient = lp_fic.numclient) AND (`dateecheance` < ADDDATE(NOW(),INTERVAL 30 DAY)) ORDER BY `dateecheance` ASC Le soucis est que dans ma page PHP, le résultat est trié par les %d puis par les %m puis les %Y et non sur la date entière. Ce qui donne par exemple : 01-01-2009 01-02-2009 01-03-2009 01-04-2009 01-04-2009 01-04-2009 01-04-2009 03-02-2009 03-02-2009 04-04-2009 Comment faire pour que le tri soit sur la date entière ? Merci d'avance.
paolodelmare Posté 27 Mars 2009 Posté 27 Mars 2009 Je crois que j'ai vu une réponse sur un excellent forum http://www.webmaster-hub.com/lofiversion/i...php/t16217.html Je n'ai pas testé...
Kioob Posté 28 Mars 2009 Posté 28 Mars 2009 Vu les symptomes, tu tris sur la version "VARCHAR" de ta date... si "lp_cont.dateecheance" est vraiment un champ de type DATE, fais le order by dessus.
Portekoi Posté 28 Mars 2009 Posté 28 Mars 2009 Convertit ton champs en date dans ta requête et cela fonctionnera sans soucis.
roadruner Posté 28 Mars 2009 Auteur Posté 28 Mars 2009 En fait, le probleme venait du reformatage du champs lp_cont.dateecheance dans mon SELECT. En changeant mon ORDER BY par ORDER BY DATE_FORMAT(lp_cont.dateecheance,'%Y-%m-%d') ASC ça marche. en fait, dans ce cas, SQL tri sur l'année, puis le mois et enfin le jour.
Kioob Posté 28 Mars 2009 Posté 28 Mars 2009 Oui mais lp_cont.dateecheance est déjà au format date non ? Donc là tu fais une double conversion du champ, juste pour un tri (ce qui empêche d'ailleurs toute utilisation d'un index). Donc, si le champ d'origine est bien formaté il suffit de remplacer ton : ORDER BY `dateecheance` par : order by lp_cont.dateecheance
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant