roadruner Posté 27 Mars 2009 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
paolodelmare Posté 27 Mars 2009 Partager 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é... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 28 Mars 2009 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 28 Mars 2009 Partager Posté 28 Mars 2009 Convertit ton champs en date dans ta requête et cela fonctionnera sans soucis. Lien vers le commentaire Partager sur d’autres sites More sharing options...
roadruner Posté 28 Mars 2009 Auteur Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 28 Mars 2009 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant