Requête SQL, récupérer données en fonction d'un champs date
Résolu
CorentinRoche
Messages postés
271
Date d'inscription
Statut
Membre
Dernière intervention
-
CorentinRoche Messages postés 271 Date d'inscription Statut Membre Dernière intervention -
CorentinRoche Messages postés 271 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Requête SQL, récupérer données en fonction d'un champs date
- Fonction si et - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment ouvrir un fichier dat - Guide
2 réponses
Salut,
quel SGBD ? Qu'est-ce qui coince ?
Parce qu'on peut avoir plein de solutions, si ton champ est de type date, tu peux tester where mois(dat_e) = "04" and annee(dat_e) = "2022".
On peut aussi construire une regex...
quel SGBD ? Qu'est-ce qui coince ?
Parce qu'on peut avoir plein de solutions, si ton champ est de type date, tu peux tester where mois(dat_e) = "04" and annee(dat_e) = "2022".
On peut aussi construire une regex...
Bonjour,
Il faudrait nous indiquer quel moteur de bdd tu utilises ... mais si tu as une date au format "français" .. c'est soit ACCESS ... soit que tu n'as pas utilisé le bon "type" pour ta colonne de date...
Sur la plupart des BDD.. un champ "date" .. est au format YYYY-mm-dd ou en timestamp
Et donc, si ton champ est bien de type date ( ce qui ne semble pas être le cas actuellement.. puisqu'il semblerait que tu sois en mysql et que ta capture écran soit faite sur phpmyadmin ), les SGBD ont en général des fonctions de manipulation de dates ...
Par exemple, en SQL, tu as les fonctions MONTH() ou YEAR() ... voir même DATE_FORMAT ...
Donc modifie le "type" pour ta colonne DATE ...
Ensuite tu pourras faire un truc du genre
ou encore
Il faudrait nous indiquer quel moteur de bdd tu utilises ... mais si tu as une date au format "français" .. c'est soit ACCESS ... soit que tu n'as pas utilisé le bon "type" pour ta colonne de date...
Sur la plupart des BDD.. un champ "date" .. est au format YYYY-mm-dd ou en timestamp
Et donc, si ton champ est bien de type date ( ce qui ne semble pas être le cas actuellement.. puisqu'il semblerait que tu sois en mysql et que ta capture écran soit faite sur phpmyadmin ), les SGBD ont en général des fonctions de manipulation de dates ...
Par exemple, en SQL, tu as les fonctions MONTH() ou YEAR() ... voir même DATE_FORMAT ...
Donc modifie le "type" pour ta colonne DATE ...
Ensuite tu pourras faire un truc du genre
WHERE YEAR(date_e) = 2022 AND MONTH(date_e) = 4
ou encore
WHERE DATE_FORMAT(date_e,'%Y-%m') = '2022-04'
Bonjour,
Merci des retours.
Je vais prendre les choses dans l'ordre :
Le site tourne sur MySQL. connexion en PDO.
Pour ce qui est de ma colonne dat_e. Effectivement elle n'est pas en format "date".
A l'époque ou j'avais fait ça j'envoyer la variable $date_de_creation.
Je vais donc changer le type de la colonne par un format date. Puis passer ma variable en :
Si j'ai compris l'ordre. Ma base de données ne devrais pas me la refuser.
Derrière je pourrais donc les gérer plus facilement avec les deux requêtes :
ou
Et par la suite modifier pour ajouter mes variables. Car c'est requête peuvent changer en fonction de la demande de l'user.
Pour ce qui est du "ça fait plusieurs fois qu'il pose des questions de requêtes sql".
Désoler de poser des questions trop souvent dans le mauvais forum ........... Mon dernier poste date de janvier 2020. Sur le quel effectivement tu me le rappel ! Je ferais donc attention lors de mon prochain post en 2024/25.
Amicalement, ;)
Merci de vos réponse.
Cordialement,
Corentin
Merci des retours.
Je vais prendre les choses dans l'ordre :
Le site tourne sur MySQL. connexion en PDO.
Pour ce qui est de ma colonne dat_e. Effectivement elle n'est pas en format "date".
A l'époque ou j'avais fait ça j'envoyer la variable $date_de_creation.
$date_de_creation = date('j-m-Y');.
Je vais donc changer le type de la colonne par un format date. Puis passer ma variable en :
$date_de_creation = date('Y-m-j');.
Si j'ai compris l'ordre. Ma base de données ne devrais pas me la refuser.
Derrière je pourrais donc les gérer plus facilement avec les deux requêtes :
WHERE YEAR(date_e) = 2022 AND MONTH(date_e) = 4
ou
WHERE DATE_FORMAT(date_e,'%Y-%m') = '2022-04'
Et par la suite modifier pour ajouter mes variables. Car c'est requête peuvent changer en fonction de la demande de l'user.
$sql = 'WHERE YEAR(date_e) = '. $year .' AND MONTH(date_e) = '. $mouth .'' ;
Pour ce qui est du "ça fait plusieurs fois qu'il pose des questions de requêtes sql".
Désoler de poser des questions trop souvent dans le mauvais forum ........... Mon dernier poste date de janvier 2020. Sur le quel effectivement tu me le rappel ! Je ferais donc attention lors de mon prochain post en 2024/25.
Amicalement, ;)
Merci de vos réponse.
Cordialement,
Corentin