Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
981 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [resolu] Question sur Order by avec une date en francais

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] Question sur Order by avec une date en francais

n°2047105
fscalda
Gaaaaaazzzz
Posté le 07-01-2011 à 10:19:36  profilanswer
 

Hello à tous,
 
j'ai un soucis, je souhaite trier une liste par la date avec un order by. Jusque la, pas de soucis. Sauf que la date ,c'est moi qui l'ai inséré à la mano sous la forme francaise 01-01-2011 ...
 
Donc quand je trie, ça me donne 01-01-2011 > 02-10-2002 > 03-08-2004 etc...
 
Je suis entrain de chercher, mais si vous avez une piste car pour l'instant je n'ai rien trouver de concluant à part peut être timestamp, mais je ne sais pas si je suis sur la bonne piste.
 
Merci d'avance.


Message édité par fscalda le 07-01-2011 à 11:34:30
mood
Publicité
Posté le 07-01-2011 à 10:19:36  profilanswer
 

n°2047120
smaragdus
whores, drugs & J.S. Bach
Posté le 07-01-2011 à 10:35:24  profilanswer
 

Désolé d'enfoncer les portes ouvertes mais si tu utilises un champ avec une date, il faut mettre un type DATE.
 
Et tu n'auras aucun problème de tri


Message édité par smaragdus le 07-01-2011 à 10:35:41
n°2047122
olivthill
Posté le 07-01-2011 à 10:37:42  profilanswer
 

Deux solutions :
 
Soit convertir la colonnne du tri dans la requête, soit faire un order by sur la sous-chaine de l'année, sur la sous-chaine du mois, et sur la sous-chaine du jour.
 
Avec quelle base de données ?
 
En Oracle on fait cela avec to_date() pour la première solution, ou avec des substr() pour la deuxième solution.
Il y a des fonctions équivalente pour les autres bases de données.

n°2047124
gzii
court-circuit
Posté le 07-01-2011 à 10:38:08  profilanswer
 

Et si c'est une chaine, trie sur substr(date,7,4)+substr(date,4,2)+left(date,2) ou fonction de ce genre si ça existe.
 
Mais c'est quand même super moche :lol:

n°2047125
antac
..
Posté le 07-01-2011 à 10:38:21  profilanswer
 

Tu vas te faire scalper :)
 
On ne met jamais un champs où l'on doit faire des opérations en varchar dans une base de données. C'est en faisant une requête que tu dois changer le format de la date.
 
Maintenant, essaye de faire ça si c'est du MySQL... (mais c'est une hérésie)
 
Select champs1, champs2, STR_TO_DATE(champs_date,'%d-%m-%Y') as Vrai_Champs_Date
FROM taTable
ORDER BY Vrai_Champs_Date


Message édité par antac le 07-01-2011 à 10:40:30
n°2047128
erulio
Posté le 07-01-2011 à 10:39:24  profilanswer
 

1/ C'est une question sql
2/ faire un champs de type DATE, la remplir avec une réécriture correcte de la date pour chaque tuple. Et utiliser le champs nouvellement créer pour ton ORDER BY.


Message édité par erulio le 07-01-2011 à 10:39:58
n°2047129
smaragdus
whores, drugs & J.S. Bach
Posté le 07-01-2011 à 10:41:40  profilanswer
 

Ne donnez pas des solutions d'hérétiques, la seule solution c'est un type DATE :o

n°2047132
antac
..
Posté le 07-01-2011 à 10:44:59  profilanswer
 

smaragdus a écrit :

Ne donnez pas des solutions d'hérétiques, la seule solution c'est un type DATE :o


 
Certes mais c'est mieux que de trier sur des substrings ;)
Puis ça lui donne une piste pour créer une colonne de type date et de faire l'update sur un select


Message édité par antac le 07-01-2011 à 10:45:32
n°2047151
fscalda
Gaaaaaazzzz
Posté le 07-01-2011 à 11:15:29  profilanswer
 

Hello, merci à tous pour ces pistes.
 
Effectivement la base est en SQL, et malheureusement pour moi, j'aurais du rentrer la date de façon normale et travailler dessus ensuite.
 
Je vais voir si je peux faire une requete pour remettre mes dates dans le bon sens et travailler ensuite sur l'affichage.

n°2047152
antac
..
Posté le 07-01-2011 à 11:17:38  profilanswer
 

Crée une colonne "Vrai_Champs_Date" dans ta table "taTable"
Puis  
UPDATE taTable
SET Vrai_Champs_Date=STR_TO_DATE(champs_date,'%d-%m-%Y')
 
Puis tu supprimes ton champs date initial et tu renommes "Vrai_Champs_Date"
 
Enjoy()

mood
Publicité
Posté le 07-01-2011 à 11:17:38  profilanswer
 

n°2047154
gzii
court-circuit
Posté le 07-01-2011 à 11:19:14  profilanswer
 

Oui si la base est à toi modifie-là.

n°2047165
fscalda
Gaaaaaazzzz
Posté le 07-01-2011 à 11:29:52  profilanswer
 

Génial, ça marche. Je me retrouve avec un vrai champ date complété comme il se doit.
 
Merci  :bounce:  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [resolu] Question sur Order by avec une date en francais

 

Sujets relatifs
Location et include : question sur le chemin en absolu [resolu]Conversion date
question affichage blocsquestion sur static
VBA Excel : Question simple, Textbox stocke des nombres en textePetite Question
Trouver processus unix en fonction de la dateformat date sous oracle
[Algo C] Question sur calcul b paritéQuestion sur la généricité
Plus de sujets relatifs à : [resolu] Question sur Order by avec une date en francais


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR