Page 1 sur 1
STR_TO_DATE() ET DATES....
Posté : 23 mars 2015, 20:05
par Pasbonte
Bonjour
j'ai un champ varchar avec des dates, pour des raisons internes je ne veux pas modifier ce champ en date.
mais je voudrai trier mes varchar...
je pense que l'on peut le faire avec des STR_TO_DATE() mais je ne sais pas ou commencer...
mon champ "date" est Quand1;
j'ai essayé ça avec des replace mais cela ne fonctionne pas...
$sql = 'SELECT count(Quand1) DESC,Heures1,Heures1bis,Quand1'
. ' FROM retenues '.$clause
. ' group by Quand1,Heures1 '
. ' ORDER BY (replace(Quand1,"/","")) DESC,Heures1 DESC limit 0,20';
une idée ?
merci
Re: STR_TO_DATE() ET DATES....
Posté : 23 mars 2015, 20:08
par tof73
sous quelle format se présente la date dans ce champ de texte ?
Re: STR_TO_DATE() ET DATES....
Posté : 23 mars 2015, 20:15
par Pasbonte
13/03/2015 par ex
Re: STR_TO_DATE() ET DATES....
Posté : 23 mars 2015, 23:20
par zeus
Le soucis en faisant un tri sur une transformation de valeur, c'est que c'est très couteux pour le SGBD : il doit parser toute la table, modifier toutes les valeurs, stocker le calcul en mémoire, faire le tri, et retourner les valeurs.
La meilleure solution est de modifier le type du champs.
Si vraiment ce n'est pas possible, tu peux laisser le champs en varchar et créer un autre champ dans le "bon" type, mais je trouve ça un peu étrange :/
Re: STR_TO_DATE() ET DATES....
Posté : 23 mars 2015, 23:30
par yann18
j'avoue ne pas comprendre la raison qui te pousse à stocker une date dans un varchar.toutefois tu peux convertir ta chaîne date en type date:
Sinon tu peux aussi créer une vue(une sorte de table virtuelle) à partir de la table.Avec phpmyadmin, tu crées une vue en lançant:
Code : Tout sélectionner
CREATE VIEW ma_vue as select Heures1,Heures1bis, STR_TO_DATE(Quand1,"%d/%m/%Y")
FROM retenues;
Dans les scripts php tu interroges la vue à place de table pour afficher les données
Re: STR_TO_DATE() ET DATES....
Posté : 25 mars 2015, 15:53
par Pasbonte
merci pour ces réponses.
Je vais modifier mon champ....j'ai essayé sur une copie de la table de changer mon varchar en date, mais je perds toutes mes données.
Y a une solution dans mysql ?
Re: STR_TO_DATE() ET DATES....
Posté : 25 mars 2015, 16:01
par tof73
oui affecter au nouveau champ STR_TO_DATE(Quand1,"%d/%m/%Y") plutôt que Quand1
Re: STR_TO_DATE() ET DATES....
Posté : 25 mars 2015, 16:12
par Pasbonte
j'ai trouvé si cela peut aider qq d'autre:
UPDATE ta_table
SET nouvelle_date = STR_TO_DATE(ancienne_date, '%d/%m/%Y')
Re: [RESOLU] STR_TO_DATE() ET DATES....
Posté : 25 mars 2015, 16:14
par Pasbonte
=D> merci !!!!!!!
Re: [RESOLU] STR_TO_DATE() ET DATES....
Posté : 25 mars 2015, 17:48
par zeus
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton "Résolu" situé en haut de la page.