Retourner aux forums || Retourner au forum Programmation.SQL
Programmation.SQL : Mettre des dates en ordre?
Posté par Pacificwarrior () le 19 septembre 2006Voici mon petit probleme que je n'arrive pas à résoudre.
Sur ma base de donnée je stock des donnée dans un champ varchar sous la forme : 10.2006
Je réutilise ces donnée sur des pages internet et j'aimerai les mettre par odre (grace a la fonction ORDER BY) seulement voila il met les deux premier chiffre en ordre et ne tien pas compte des quatre autre ce qui me donne 09.2007 avant le 10.2006 comment faire pour faire un tri de date.
Merci
> Lire le message (7 commentaires, moyenne: 2,1).
champ date
pourquoi ne pas utiliser un champ date ?
sinon l'utilisation du format classique YYYYMMDD ou YYYY-MM-DD te simplifierait la vie (ou YYYY.MM si cela te suffit....)
Une chaîne pour stocker une date...
Mauvaise idée, mais si tu n'as pas le choix, tu peux toujours trier sur une sous-chaîne.
Malheureusement, tu ne nous indique pas quel est le moteur de base de données utilisées, alors ce n'est pas simple de donner une commande qui fonctionnera.
Sous informix, order by champ[4-6], champ[1-2] fonctionne (de mémoire), sous postgres, order by substr (champ, 4,4),substr(champ, 1,2) fonctionne....
Sous mysql, je n'en ai aucune idée, etc il existe tant de moteurs de bases de données, et tant d'interprétations des normes SQL, sans parler des "combines" propres à chaque éditeur...
Alors, voilà, j'espère soit que ce post aura au moins permis de t'aiguiller, soit qu'il t'aura donné envie de nous en dire plus...
All articles which are excluded shall be deemed included
Tous les articles exclus sont considérés inclus
--Brian de Palma in Phantom of the Paradize
-
[^]Re: Une chaîne pour stocker une date...
Posté par Pacificwarrior () le 19/09/2006 à 16:23. (lien). Évalué à 1.Merci pour cette aide.
Le systeme fonctionne sur un PC avec windows dessus et le systeme esayphp 1.8 je pense qu'il s'agit de mysql. Comment savoir comment faire? Encore merci a vous-
[^]Re: Une chaîne pour stocker une date...
Posté par B. franck () le 20/09/2006 à 09:39. (lien). Évalué à 2.Comment savoir comment faire?
il faut revoir la conception qui a été mal faite et utiliser un type date pour stocker des ... dates. (3 qui suivent).-
[^]Re: Une chaîne pour stocker une date...
Posté par Pacificwarrior () le 21/09/2006 à 06:11. (lien). Évalué à 1.Ok
Admetons que je modifie la conception et que je remplace le type varchar par un type date. Comment faire ensuite pour que mes date se classe dans le bonne ordre? Si il n'y a que cette solution je suis preneur, je m'adpetrai avec le reste de mon code.
Merci d'avance
PW-
[^]Re: Une chaîne pour stocker une date...
Posté par B. franck () le 21/09/2006 à 17:08. (lien). Évalué à 1.utiliser la clause ORDER BY du sql dans ta requête
-
[^]Re: Une chaîne pour stocker une date...
Posté par Flavien () le 02/10/2006 à 15:41. (lien). Évalué à 2.En utilisant un format de date dans MySQL tu pourras en plus utiliser des fonctions existantes pourr travailler directement sur les jours, mois, années, additions, soustractions de dates, etc... ce qui permet souvent d'économiser du code derrière. Cf. DATE(), DAY(), MONTH(), YEAR(), DATEDIFF().
Et puis de toute façon c'est une bonne habitude à prendre :)
-
-
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.SQL



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.