[SQL] Date divisées ern 3 champ à comparer
Moriar
-
Moriar -
Moriar -
Bonjour !
Je cherche de l'aide pour un probleme assez épineux.
Je dois traiter les données d'une base MySQL qui contient entre autre des dates.
Ces dates sont au format JJ/MM/AA mais les jours les mois et les années sont tous dans des champs différents (je me retrouve donc avec une date stoquée en 3 nombres dans des champs distincts).
J'ai eu beau me pêter la tête dessus je n'ai pas trouvé le moyen de rassembler ces 3 champs au format date pour les comparer à une date fournie par l'utilisateur (tout ça en une requete SQL bien sur).
Bien sur j'ai déjà trouvé un moyen de traiter ça aprés la requete via PHP mais cette solution est assez lourde et ne sera peut être plus utilisable quand il me faudra étendre mon outil.
Merci d'avance pour vôtre aide.
Je cherche de l'aide pour un probleme assez épineux.
Je dois traiter les données d'une base MySQL qui contient entre autre des dates.
Ces dates sont au format JJ/MM/AA mais les jours les mois et les années sont tous dans des champs différents (je me retrouve donc avec une date stoquée en 3 nombres dans des champs distincts).
J'ai eu beau me pêter la tête dessus je n'ai pas trouvé le moyen de rassembler ces 3 champs au format date pour les comparer à une date fournie par l'utilisateur (tout ça en une requete SQL bien sur).
Bien sur j'ai déjà trouvé un moyen de traiter ça aprés la requete via PHP mais cette solution est assez lourde et ne sera peut être plus utilisable quand il me faudra étendre mon outil.
Merci d'avance pour vôtre aide.
A voir également:
- [SQL] Date divisées ern 3 champ à comparer
- Ai suite 3 - Télécharger - Optimisation
- Airpods 3 date de sortie - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Whatsapp date incorrecte ✓ - Forum Mobile
4 réponses
En fait je reçois les dates à comparée à celle de la BDD via un formulaire.
Mais si je fais SELECT *
FROM TABLE
WHERE CONCAT('$annee','-','$mois','-','$jour') > CONCAT(table.annee,'-',table.mois,'-',table.jour)
Ca passerait comparerait ces deux concaténation comme étant des dates ?
Mais si je fais SELECT *
FROM TABLE
WHERE CONCAT('$annee','-','$mois','-','$jour') > CONCAT(table.annee,'-',table.mois,'-',table.jour)
Ca passerait comparerait ces deux concaténation comme étant des dates ?
Non, effectivement dans ces conditions il faut obligatoirement caster.
Mais là, la syntaxe dépend pas mal de ton sgbd...
Sur du sql server, voilà la façon de procéder : https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
Sur du mysql, CAST(CONCAT(...) AS DATETIME) devrait convenir.
Mais là, la syntaxe dépend pas mal de ton sgbd...
Sur du sql server, voilà la façon de procéder : https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
Sur du mysql, CAST(CONCAT(...) AS DATETIME) devrait convenir.