IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

Problème de requêtes pour comparer 2 dates


Sujet :

MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut Problème de requêtes pour comparer 2 dates
    Bonjour à tous, alors voilà je rencontre un soucis avec une requête ultra basique qui ne semble pas marché. Je suis pourtant quasi sur de moi mais vu que ca ne marche pas et que je ne comprend pas pourquoi je me tourne vers vous :

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM wp_raffles_list where date_fin between '2016-07-29' and '2016-07-30'
    et il me ressort les 2 lignes de ma table qui ont comme date :

    date_fin 2016-07-27 0000-00-00

    Alors que normalement la requête ne devrait rien me renvoyer ?

    et ma colonne date_fin est bien un type date

    Merci d'avance

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 972
    Points
    83 972
    Billets dans le blog
    15
    Par défaut


    Essayez avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM wp_raffles_list
    WHERE STR_TO_DATE(date_fin, '%d/%m/%Y')
      BETWEEN STR_TO_DATE('2016-07-29', '%d/%m/%Y')
        AND STR_TO_DATE('2016-07-30', '%d/%m/%Y')
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    Ca n'a pas l'air de fonctionner non plus, ca ne m'affiche plus rien même lorsque les valeurs sont censé affichés quelques choses, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM wp_raffles_list
    WHERE STR_TO_DATE(date_fin, '%d/%m/%Y')
      BETWEEN STR_TO_DATE('2016-07-20', '%d/%m/%Y')
        AND STR_TO_DATE('2016-07-30', '%d/%m/%Y')

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 788
    Points
    30 788
    Par défaut
    Si la colonne date_fin est bien de type DATE ou DATETIME, la requête suivante devrait convenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM wp_raffles_list
    WHERE date_fin BETWEEN STR_TO_DATE('2016-07-29', '%Y-%m-%d') AND STR_TO_DATE('2016-07-30', '%Y-%m-%d')
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    Al1_24 ca marche ! Merci à vous les amis, j'étais persuader que ca marchait sans le STR_TO_DATE.

  6. #6
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 133
    Points : 83 972
    Points
    83 972
    Billets dans le blog
    15
    Par défaut
    al1_24 Merci pour la précision +1
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  7. #7
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 057
    Points
    19 057
    Par défaut
    Salut juju77.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM wp_raffles_list where date_fin between '2016-07-29' and '2016-07-30';
    Cette requête est tout à fait correcte !

    Citation Envoyé par juju77
    je rencontre un soucis avec une requête ultra basique qui ne semble pas marché
    Le problème ne vient pas de votre requête mais du format de la date que vous utilisez.
    La solution d'al_24 démontre que vous avez un problème de format dans la représentation des dates.
    Je ne comprends pas, avec le peu d'information que vous nous avez donné, pourquoi vous avez ce genre de problème.
    A priori, vous avez un mauvais paramétrage dans MySql.

    Citation Envoyé par juju77
    ma colonne date_fin est bien un type date
    Si vous utilisez le type date, et si vous stockez vos dates en utilisant le format 'yyyy-mm-dd', vous ne devriez pas rencontrer ce genre de problème !

    Une sale habitude est de stocker la date avec le type "char()" ou encore en "varchar()". Alors pourquoi utiliser ce type ?
    La plupart du temps, c'est à cause d'un problème de conversion dans le bon format de représentation des dates sous MySql.
    Par exemple, lors du chargement d'un fichier ".csv' dans une table mysql, vous devez utiliser la fonction "str_to_date()".
    Cette fonction va donner le format de représentation de la date de votre fichier Excel, et va le stocker dans le type date.

    Si c'est un problème d'affichage, entre mysql et php, le mieux est d'utiliser la fonction MySql "date_format()" pour résoudre ce problème.

    Pour tentez de résoudre votre problème, il nous faudrait :
    1) le DDL (Data Definition Language) de votre table "wp_raffles_list".

    2) un jeu d'essai représentatif de votre problème avec la requête que vous nous avez communiqué.

    3) Vous n'avez pas précisé si vous êtes sous Windows ou sous Unix.

    4) Ni la version MySql que vous utilisez ?

    5) Ni si c'est dans un script php ou dans la console MySql.

    Et si vous avez d'autres informations à nous communiquer, elles seront les biens venues.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/01/2012, 18h38
  2. [SQL] Requête pour comparer 2 dates
    Par ideal23 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/12/2007, 17h20
  3. Problème de requête pour une relation de type n-n
    Par toutoune60 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2007, 15h41
  4. [SQL2K] requête SQL, comparer des dates
    Par cortex024 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 16/03/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo