MySQL se trompe dans le tri

Résolu/Fermé
Michel - 22 févr. 2016 à 03:12
 Michel - 22 févr. 2016 à 15:27
Salut !

J'entre mes données dans MySQL en mettant le Jour, le mois, l'année dans des champs séparés. J'ai besoin de stocker ça comme ça.

Puis j'affiche le résultat en mettant "ORDER BY Annee, Mois, Jour ASC".

Résultat :
1 mars...
10 mars...
19 mars...
28 mars...
29 mars...
10 avril...
31 mai...
15 mai...
30 juin...
7 juin...


Pour le mois de mars à avril, ça marche mais arrivé au mois de mai et juin, les jours ne sont pas triés. Pourquoi ?

1 réponse

ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
22 févr. 2016 à 09:11
Hello,

tu as des champs "année", "mois", "jour" ?
Et de quel type STP ?
0
Salut !
varchar mais je viens de comprendre. :)

Comme Windows XP et antérieur, le 31 se place avant le 5 pourquoi parce que la lecture se fait de gauche à droite donc 3 est plus petit que 5
D'où :
31
5
etc.
Il faut mettre un 0 devant pour faire 05 et là :
05
31

C'est cool. :)
Où alors, je vais essayer en INT.
0
C'était bien INT qu'il fallait mettre :)
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
22 févr. 2016 à 15:14
Re,

C'était bien INT qu'il fallait mettre :)

... Je me doutais qu'il y avait un truc dans le genre.

juste pour dire que sinon il un a un type date qui est censé faciliter la vie. Même si au départ cela peut paraître moins évident à utiliser, à l'arrivée cela se révèle souvent plus fiable et évite d'avoir à "réinventer la roue" si on décide de faire évoluer une fonctionnalité, comme par exemple de faire des opérations entre dates, de calculer la semaine de l'année, etc ...
0
Re ! Oui, je sais qu'il existe un tri par date tout fait mais c'est juste une liste d'événements par date. Elles s'affichent uniquement dans l'ordre croissant. Il y a pas d'autre chose à faire. Puis je récupère le jour et le mois pour les afficher en images.

Donc les champs Jour, Mois, Année séparés me conviennent mieux.

Merci pour m'avoir posé cette question sur les champs. Varchar n'était pas appropriée.
0