Tri sur une date au format dd/mm/yy
hellwood
-
hellwood -
hellwood -
Bonjour,
voila j'ai un petit probleme pour réaliser un tri sur une date.
J'explique, je doit mettre a jour régulierement une table via un fichier csv en php, pas de souci.
Ce fichier contient un champs avec une date au format dd/mm/yy.
Résultat des courses je suis obligé de stocker cette date dans un champs de type texte ou autre mais pas de type date etant donné que mysql travail en yy/mm/dd.
Quelqun aurait t'il une idée pour faire un tri sur ce champs sans devoir modifier le fichier csv ??
voila j'ai un petit probleme pour réaliser un tri sur une date.
J'explique, je doit mettre a jour régulierement une table via un fichier csv en php, pas de souci.
Ce fichier contient un champs avec une date au format dd/mm/yy.
Résultat des courses je suis obligé de stocker cette date dans un champs de type texte ou autre mais pas de type date etant donné que mysql travail en yy/mm/dd.
Quelqun aurait t'il une idée pour faire un tri sur ce champs sans devoir modifier le fichier csv ??
A voir également:
- Tri sur une date au format dd/mm/yy
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Comment faire un tri personnalisé sur excel - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
- Format dat - Guide
13 réponses
Mmmmh je suppose qu'un tri par type va etre de mise... ce que je vais dire va etre grossier, mais c'est l'idée qu'il faut noter ^^
date = dd/mm/yy
tu peux faire un $cut_date = explode("/", $date); ce qui va te donner 3 tableaux $cut_date[]
ensuite tu peux imaginer un tri des $cut_date[].
Ou bien si tu ne dois pas remettre a jour ta base de donnée
UPDATE ma_table SET date = '$cut_date[2].$cut_date[1].$cut_date[0]' un truc dans ce style ?
date = dd/mm/yy
tu peux faire un $cut_date = explode("/", $date); ce qui va te donner 3 tableaux $cut_date[]
ensuite tu peux imaginer un tri des $cut_date[].
Ou bien si tu ne dois pas remettre a jour ta base de donnée
UPDATE ma_table SET date = '$cut_date[2].$cut_date[1].$cut_date[0]' un truc dans ce style ?
Si tes valeurs sont déjà dans ta table, il te suffit simplement d'ajouter une colonne de type DATE.
ALTER laTable ADD COLUMN dateTemp DATE DEFAULT NULL;Ensuite un UPDATE en prenant les valeurs de ta colonne date actuelle.
UPDATE laTable SET dateTemp = CONCAT(SUBSTRING(colonneDate, 7, 2), '-', SUBSTRING(colonneDate, 4, 2), '-', SUBSTRING(colonneDate, 1, 2));Tu vérifies que tout s'est bien passé.
SELECT dateTemp, colonneDate FROM laTable;Si ok, tu supprimes l'ancienne colonne de ta date.
ALTER laTable DROP colonneDate;Et ensuite tu renommes dateTemp du nom de ta colonne et supprimes le DEFAULT NULL.
ALTER TABLE laTable CHANGE dateTemp colonneDate DATE NOT NULL;Et après un simple ORDER BY pour trier selon cette colonne ;)
On peut savoir pourquoi tu ne stockes pas tes dates dans un type destiné à cet usage ?
Une date, ça se formate.
Une date, ça se formate.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pour ThEBiShOp,
un tri directement dans la requete me pose justement probleme sur un champ qui a le format dd/mm/yy
car dans le cas d'un tri descendant par exemple : 12/04/2001 viendrait avant 12/01/2004
probleme qui ne se poserait pas si la date était dans le format yy/mm/dd
un tri directement dans la requete me pose justement probleme sur un champ qui a le format dd/mm/yy
car dans le cas d'un tri descendant par exemple : 12/04/2001 viendrait avant 12/01/2004
probleme qui ne se poserait pas si la date était dans le format yy/mm/dd
patachon, comment pourais-je formater une date qui est deja dans ce format dans le fichier texte?
ces fichiers texte sont généré par un autre programme, je ne peut donc pas formater mes dates dedans via excel par exemple.
L'idée de Borracho est interressante mais c'est deja du sacré boulot ...
- extraire toutes les mauvaises dates
- exploser les dates en les inversant dans un tableau
- procéder à une mise à jour en remettant juste les bonnes dates à la place des mauvaises dans la db.
ces fichiers texte sont généré par un autre programme, je ne peut donc pas formater mes dates dedans via excel par exemple.
L'idée de Borracho est interressante mais c'est deja du sacré boulot ...
- extraire toutes les mauvaises dates
- exploser les dates en les inversant dans un tableau
- procéder à une mise à jour en remettant juste les bonnes dates à la place des mauvaises dans la db.
Pourquoi tu ne changes pas toi même le format de la date lorsque tu la récupère? de manière à ce qu'elle soit du même format que en sql
Sinon tu commences par comparer l'année ensuite le moi puis le jour vu que le format est tout le temps le même il te suffit de récupérer les caractères de 0à2 puis de 3 à 5 puis de 6 à 8 avec la méthodes substr
Sauf que non, on ne met pas du café dans une boîte à sucre tout comme on ne met pas du sucre dans un pot à café.
Des types dates sont fournis, autant s'en servir non ?
Des types dates sont fournis, autant s'en servir non ?
raaah j'ai l'impression de lire tellement de solutions interressante ici, pourtant je ne sais plus quoi penser.