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

PHP & Base de données Discussion :

[SQL] date et between


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut [SQL] date et between
    Salut.
    Dans ma table j'ai un champs qui contient des dates.
    Pour le moment il contient.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2006-06-10  et 2006-06-30
    Ma requête est la suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM taches  WHERE ('pour_le' between '2005-06-12' and '2008-07-01')"
    Cela ne retourne aucun résultat.
    Que fais-je mal?

    Cordialement

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    ce sont bien des champs au format date ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Oui c'est bien au format date.

    pour_le date Non 0000-00-00

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    il me semble que les quotes ne sont pas obligatoires .... (au risque de dire une ânerie )
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    essaie comme cela alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT 
         T.* 
    FROM 
         taches  T
    WHERE 
         T.'pour_le' > '2005-06-12' 
    AND 
         T.'pour_le' < '2008-07-01'
    Perso j'aime pas trop between, parceque je ne sais jamais si c'est exclusif sur les bornes :s

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Tu as surement raison, mais ca ne renvoit toujours rien ^^

    Je vais essayer comme tu me dis Epox

  7. #7
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
         T.* 
    FROM 
         taches  T 
    WHERE 
         T.pour_le > '2005-06-12' 
    AND 
         T.pour_le < '2008-07-01'
    sasn les ' autour des nom de champs surement

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    je crois que le format date de sql ne met pas les tirets...
    il va tout attacher ce qui donnerait 20050612

    De plus je crois qu'il rajoute les min, heures et sec

    Ce qui donne un format du type :

    20050612HHMMSS

    essaye de remplacer tes critères par :

    between '20060612000000' and '20080701000000'

  9. #9
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Je ne pense pas Zocrom.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    t'es sur ?
    parce que j'arrive à abtenir les heure, minutes et secondes avec le format date

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Epox ta manière renvoit toujours rien sniff et zocrom en faisant de ta manière non plus ca renvoit aucun résultat.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Je crois que j'ai trouvé en utilisant rechercher dans phpmyadmin

    La requête est de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM taches WHERE `pour_le` < '2008-10-10'
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM taches WHERE 'pour_le' < '2008-10-10'

  13. #13
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Zocrom jettes un oeil sur http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

    masseur, as tu essayé de passer ta requete dans phpmyadmin ?
    Est tu sur d'avoir des enregistrement au format date 'Y-MM-JJ' ?
    Tes enregistrements sont il bien dans l'intervalle
    T.pour_le > '2005-06-12'
    AND
    T.pour_le < '2008-07-01'

    ?

    Sinon essaie cela dans phpmyadmin :
    SELECT
    T.*
    FROM
    taches T
    WHERE
    T.pour_le > '0000-00-00'

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    essaye deja d'afficher une date pour voir a quel format ta date est retournée... (je sais je suis têtu)

    EDIT : merci, autant pour moi ePox

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Ca marche comme ceci epox c'est good
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT * FROM taches  WHERE (`pour_le` between '20050612' and '20080701')";
    ou comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT * FROM taches  WHERE (`pour_le` between '2005-06-12' and '2008-07-01')";
    On faisait une erreur sur pour_le

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

Discussions similaires

  1. Erreur Conception ou erreur SQL ? (><=Date()?)
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/09/2005, 23h03
  2. [java.sql.Date] format compatible tout sgbd ?
    Par djskyz dans le forum JDBC
    Réponses: 8
    Dernier message: 15/09/2004, 11h28
  3. [sql][postgres] le between est 'il inclusif?
    Par globz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/06/2004, 11h16
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  5. SQL Date
    Par hamed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/11/2003, 15h18

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