Requete SQL sur des dates pb avec les dizaine
Résolu
shaka_zoulou
-
shaka_zoulou -
shaka_zoulou -
Bonjour,
Je travaille sur un questionnaire automatisé en PHP accédant à une base de donnée MySQL.
Lors d'une requête sur ma table de réponses j'ai une erreur sur les dates des formations des utilisateurs voici laquelle :
Cette requête est censée m'afficher les résultats des utilisateurs dont la formation s'est déroulée pendant l'année cependant elle ne retourne aucun résultat.
Néanmoins ceci fonctionne si au lieu de choisir un mois comportant une dizaine (à partir d'octobre) je me limite au mois de septembre (9) comme sur la requête suivante :
Celle-ci fonctionne mais c'est très gênant d'être limité aux 9 premiers mois de l'année.
Quelqu'un aurait la solution ?
Cordialement
Je travaille sur un questionnaire automatisé en PHP accédant à une base de donnée MySQL.
Lors d'une requête sur ma table de réponses j'ai une erreur sur les dates des formations des utilisateurs voici laquelle :
select * from reponse, utilisateur where reponse.num_utilisateur=utilisateur.num_utilisateur and utilisateur.complet='oui' and date_debut>='2008-1-1' and date_fin<='2008-12-1'
Cette requête est censée m'afficher les résultats des utilisateurs dont la formation s'est déroulée pendant l'année cependant elle ne retourne aucun résultat.
Néanmoins ceci fonctionne si au lieu de choisir un mois comportant une dizaine (à partir d'octobre) je me limite au mois de septembre (9) comme sur la requête suivante :
select * from reponse, utilisateur where reponse.num_utilisateur=utilisateur.num_utilisateur and utilisateur.complet='oui' and date_debut>='2008-1-1' and date_fin<='2008-9-1'
Celle-ci fonctionne mais c'est très gênant d'être limité aux 9 premiers mois de l'année.
Quelqu'un aurait la solution ?
Cordialement
A voir également:
- Requete SQL sur des dates pb avec les dizaine
- Nombre de jours entre deux dates excel - Guide
- Logiciel sql - Télécharger - Bases de données
- Comment trier des dates par mois sur excel - Guide
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
4 réponses
Bonjour,
Tout d'abord, la zone
Si oui, je pense que tu dois utiliser le test suivant
A plus
Tout d'abord, la zone
date_debutest-elle définie comme une zone date dans ta table ?
Si oui, je pense que tu dois utiliser le test suivant
date_debut >= '2008-01-01' and date_debut <= '2008-12-31'et non
date_debut >= '2008-1-1' and date_debut <= '2008-12-1'
A plus
salut ,je crois que tu dois pas faire la jointure avec le WHERE lorsque tu l'utilise dans les critères de la requête ,utilise inner join .
Essaye cette requête :
select * from reponse inner join utilisateur
on reponse.num_utilisateur=utilisateur.num_utilisateur
where utilisateur.complet='oui'
and date_debut>='2008/1/1' and date_fin<='2008/12/31'
Essaye cette requête :
select * from reponse inner join utilisateur
on reponse.num_utilisateur=utilisateur.num_utilisateur
where utilisateur.complet='oui'
and date_debut>='2008/1/1' and date_fin<='2008/12/31'
Je te conseille de faire comme ça :
Il faut au préalable que tu fixes le format de tes dates dans mysql car l'exemple ci-dessus marche pour les dates au format anglais.
Si tu as un autre format alors change la deuxième partie du DATE_FORMAT(a savoir : "%Y-%m-%d")
WHERE DATE_FORMAT(date_debut, "%Y-%m-%d") > STR_TO_DATE('2008-01-01', "%Y-%m-%d") AND DATE_FORMAT(date_fin, "%Y-%m-%d") < STR_TO_DATE('2008-12-31', "%Y-%m-%d")
Il faut au préalable que tu fixes le format de tes dates dans mysql car l'exemple ci-dessus marche pour les dates au format anglais.
Si tu as un autre format alors change la deuxième partie du DATE_FORMAT(a savoir : "%Y-%m-%d")