Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2008, 12h14   #1
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Par défaut Ordonner des dates.

Bonjour,

J'ai une table que je n'es pas crée et qui es déjà rempli de donnée.
Dans cette table j'ai un champ qui se nomme date_com de type varchar, les date de ce champ son écrit comme ce ci 01/05/2008.

Donc mon problème c'est que je dois faire un tri sur c'est date avec un ASC ou DESC mais voila mysql me trie que les 2 premier chiffre et par le reste de la date donc mon ordonnancement n'est pas bon.

Et bien sur dans cette table j'ai d'autre 10 autre champ en plus de celui avec la date.

Comment puis je faire pour trier normalement c'est date ?

Merci a vous.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 12h29   #2
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
Bonjour,

Citation:
Envoyé par Shandler Voir le message
Comment puis je faire pour trier normalement c'est date ?
Utiliser des types date
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 14h10   #3
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Oui mais le probleme que le system attend des date de ce type 01/05/2008 alors que mysql me balance des date de ce type 2008-05-28 et donc mon probleme est que je ne peut changer l'ecriture des dates.

merci a toi
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 18h49   #4
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
Il existe une fonction DATE_FORMAT(date,format) qui est faite pour ça
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 22h20   #5
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Oui mais comme je disais je ne peux pas changer mes donnée de ma bdd car sinon tous le systéme autour de ca marchera plus donc ce que je comprend c'est que cela est impossible de trier les dates tel que je les es maintenant.

Merci de ton aide.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 22h30   #6
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
Si tu utilise la fonction DATE_FORMAT() rien ne changera pour ce qui entoure la base de données.
L'avantage c'est que tu n'aura plus de problème, le désavantage c'est qu'il faut que tu t'occupe de convertir les dates actuelle en dates MySQL
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 00h10   #7
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 409
Points : 6 409
A mon avis, le problème est un peu plus complexe que ça, parce que la fonction DATE_FORMAT() est faite pour formater un champ qui est déjà de type DATE... Or là, c'est du VARCHAR...

Tu as plusieurs solutions. La plus "basique" consiste à transformer les dates de ton champ en timestamp de format AAAAMMJJ pour la comparaison. Dans ce cas, ça devrait fonctionner...
Pour faire ça, il va falloir utiliser la fonction SUBSTRING() pour extraire l'année, le mois puis le jour. Et concaténer tout ça...

Ca doit donner quelque chose comme :
Code :
... ORDER BY CONCAT(SUBSTRING(date_com, 7, 4), SUBSTRING(date_com, 4, 2), SUBSTRING(date_com, 1, 2)) ASC
ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 00h31   #8
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
Pas bête en effet.
Ma solution ne s'appliquait pas directement au contexte de son application ce qui engendrais des modification sur l'existant.
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 18h14   #9
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Merci a vous pour votre aide.
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h15.


 
 
 
 
Partenaires

Hébergement Web