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 :

Problème de requêtes avec deux dates


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut Problème de requêtes avec deux dates
    Bonjour à tous !
    J'ai une table mysql dans laquelle il y 4 colonnes date_deb(date),heure_deb(time),date_fin(date),heure_fin(time).Je veux selectionner par exemple entre 2011-01-07 09:00:00 et 2011-01-11 18:00:00.

    J'ai ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DELETE FROM "xxx"  WHERE date_deb >=  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y') AND heure_deb >= '" + e.Item.Cells[3].Text + 
    "' AND date_fin <= STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') AND heure_fin <= '" + e.Item.Cells[4].Text + "')
    Mais ça marche pas.
    Quelq'un peut m'aider ?

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    En effet, prenons par exemple la date
    2011-01-08 07:00:00
    Elle est bien comprise entre 2011-01-07 09:00:00 et 2011-01-11 18:00:00, mais ne satisfait pas la condition suivante dans votre requete :
    heure_deb >= 9:00 !

    Il faut donc traiter a part les cas d'égalité dans la colonne date, et seulement dans ce cas comparer les heures

    faire quelque chose de la sorte :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    DELETE FROM "xxx"  
    WHERE (
      date_deb >  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y') 
      OR (
        date_deb =  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y')
        AND 
        heure_deb >= '" + e.Item.Cells[3].Text + "' 
        )
      )
    AND (
      date_fin < STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') 
      OR (
        date_fin = STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') 
        AND 
        heure_fin <= '" + e.Item.Cells[4].Text + "'
        )
      )

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

Discussions similaires

  1. [MySQL-5.0] Problème de requête avec des dates
    Par trivet61 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/09/2013, 10h50
  2. Problème de requêtes avec deux paramètres
    Par Ahlina dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/03/2013, 23h21
  3. Problème de requête avec une date
    Par ghnawfal dans le forum SQL
    Réponses: 6
    Dernier message: 18/09/2008, 14h23
  4. Réponses: 4
    Dernier message: 13/02/2006, 18h58
  5. Problème de requête avec dates
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 08/02/2006, 00h17

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