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

Requêtes MySQL Discussion :

Comparaisons de dates dans un SELECT [Fait]


Sujet :

Requêtes MySQL

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Comparaisons de dates dans un SELECT
    Bonsoir,

    Sûrement de la mauvaise volonté de ma part, mais j'ai beau lire et relire ceci je ne trouve pas la simple comparaison de date dans un SELECT.

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `t_users_dossiers` LEFT OUTER JOIN `table_civil` ON t_users_dossiers.id_maj=table_civil.id_maj WHERE '2006-10-02' BETWEEN (`gest_date_debut` AND `gest_date_fin`) AND t_users_dossiers.id_trt BETWEEN (1 AND 4) and id_user=98 OR gest_date_debut<='2006-10-02' AND `gest_date_fin`=0 AND t_users_dossiers.id_trt BETWEEN (1 AND 4) and id_user=98 limit 0,200
    Le SELECT sur la date "gest_date_debut<='2006-10-02'" ne fonctionne pas, je ne vois pas pourquoi.

    Merci d'avance pour vos éclaircissements.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    Bonjour,

    Quel est le format de ton champ date? je suis étonné par le 0 que je vois


    Michel



    Edit : il y a certainement quelque chose que je n'ai pas vu mais ceci n'est il pas la meme chose que ce que tu recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM `t_users_dossiers` LEFT OUTER JOIN `table_civil` ON t_users_dossiers.id_maj=table_civil.id_maj 
    WHERE `gest_date_debut` <='20061002' AND 
    t_users_dossiers.id_trt BETWEEN (1 AND 4) and id_user=98 
    limit 0,200

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Revois le format de ton champs date et voici un exemple d'utilisation Comment extraire des enregistrements appartenant à un intervalle de dates ?

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci Kerod,

    J'ai ceci dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT *
    FROM t_users_dossiers
    LEFT OUTER JOIN maj_etat_civil 
    ON t_users_dossiers.id_maj=maj_etat_civil.id_maj 
    WHERE '$today' BETWEEN (gest_date_debut AND gest_date_fin)
    AND t_users_dossiers.id_trt 
    BETWEEN (1 AND 4)
    OR '$today'>gest_date_debut 
    AND 0<=gest_date_fin
    AND t_users_dossiers.id_trt 
    BETWEEN (1 AND 4)
    Ce qui génère la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM `t_users_dossiers` 
    LEFT OUTER JOIN `maj_etat_civil` 
    ON t_users_dossiers.id_maj=maj_etat_civil.id_maj 
    WHERE '2006-10-04' BETWEEN (gest_date_debut AND gest_date_fin) 
    AND t_users_dossiers.id_trt BETWEEN (1 AND 4) 
    OR '2006-10-04'>gest_date_debut 
    AND 0<=gest_date_fin 
    AND t_users_dossiers.id_trt BETWEEN (1 AND 4)
    Dans ma base j'ai 7 enregistrements dont la date de début est inférieur à aujourd'hui et dont la date de fin est 0.

    Je ne récupère que 5 des 7 enregistrements. Si je supprime le test sur les dates, j'ai bien les 7.

    Je ne vois pas de différences dans la syntaxe avec le lien que tu m'as donné

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'ai simplement supprimé les parenthèse sur mes BETWEEN sur le champ id_trt et cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM `t_users_dossiers` 
    LEFT OUTER JOIN `maj_etat_civil` 
    ON t_users_dossiers.id_maj=maj_etat_civil.id_maj 
    WHERE '2006-10-04' BETWEEN (gest_date_debut AND gest_date_fin) 
    AND t_users_dossiers.id_trt BETWEEN 1 AND 4 
    OR '2006-10-04'>gest_date_debut 
    AND 0<=gest_date_fin 
    AND t_users_dossiers.id_trt BETWEEN 1 AND 4
    Allez savoir pourquoi, ce n'était que cela qui gênait.

    Cela fonctionne, mais je ne sais pas pourquoi cela ne fonctionnait pas avec les parenthèses.

    Merci à tous.

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

Discussions similaires

  1. [XML] Pb avec comparaison de dates dans un XML
    Par gaggy dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/10/2007, 15h25
  2. Comparaison de dates dans Mysql
    Par inch dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2007, 12h08
  3. Group by date dans un select
    Par lampre dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/09/2006, 11h16
  4. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  5. [XE] Comparaison de dates dans un Trigger
    Par Nicodemus dans le forum Oracle
    Réponses: 2
    Dernier message: 20/02/2006, 16h37

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