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

Langage SQL Discussion :

Requête Sql between


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut Requête Sql between
    Bonjour,

    J'ai un petit souci avec l'écriture d'une requête.
    Je dispose d'une table qui stocke des dates au format YYYY-MM-DD HH:MM:SS (Occupation : idResa, idLogement, dateDebut, dateFin) et je souhaite savoir si un intervalle de date est disponible.
    Exemple :
    idResa, idLogement, dateDebut, dateFin
    1, 1, 2011-05-10 14:00:00, 2011-05-15 14:00:00
    2, 1, 2011-05-20 14:00:00, 2011-05-25 14:00:00

    Côté Php j'ai une date d'arrivé et une durée souhaitée (2011-05-15T15:00:00, 3 jours)

    Je pensais utiliser between pour déterminer si la date souhaitée est disponible, mais je suis sur un base MySql (donc pas de Pl-sql).

    Existe-t-il un moyen de faire cette requête ou dois-je récupérer mes dates d'occupation et faire la recherche côté php?

    Merci d'avance

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    BETWEEN n'est pas spécifique au PL/SQL...

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut
    Je parlais de Pl-sql car ça aurait permis de regarder ligne par ligne facilement.
    Entre temps j'ai eu une idée, une requête de ce type fonctionnerait-elle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id 
    FROM Reservation 
    WHERE start_date <= ".$date." and end_date >= ".$date + $duree." and idLogement= '".$idLogement."'";
    Si elle ne renvoie rien, c'est que le logement n'est pas occupé sur cette période non?

    $date + $dure ne fonctionne évidemment pas mais c'est pour l'idée

    Je vais jeter un oeil à ton papier olivier, merci.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si tu cherches les logements disponibles pendant la période définie par tes variables PHP, essaie la requête suivante, à adapter à ta structure réelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT l.id
    FROM logement l
    WHERE NOT EXISTS
    (
      SELECT *
      FROM reservation r
      WHERE r.idLogement = l.id
        AND 
        (
          r.start_date BETWEEN '$date' AND ADD_DATE('$date', INTERVAL $duree DAY)
          OR r.end_date BETWEEN '$date' AND ADD_DATE('$date', INTERVAL $duree DAY)
        )
    )
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Si tu cherches les logements disponibles pendant la période définie par tes variables PHP, essaie la requête suivante, à adapter à ta structure réelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT l.id
    FROM logement l
    WHERE NOT EXISTS
    (
      SELECT *
      FROM reservation r
      WHERE r.idLogement = l.id
        AND 
        (
          r.start_date BETWEEN '$date' AND ADD_DATE('$date', INTERVAL $duree DAY)
          OR r.end_date BETWEEN '$date' AND ADD_DATE('$date', INTERVAL $duree DAY)
        )
    )

  6. #6
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    as tu regardé le petit papier de SQLPro avec les hôtels ? ici je crois

    sinon recherche dans ces publis de SQLPRO, normalement le bonheur y est

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

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. Requête SQL sous VBA - Between
    Par p'tite Sandrine dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/08/2012, 20h24
  3. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  4. Réponses: 4
    Dernier message: 17/02/2007, 15h11
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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