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 :

Horaire : sélectionner les champs avec la date


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 0
    Points
    0
    Par défaut Horaire : sélectionner les champs avec la date
    Bonjour,

    J'aurai un problème avec une requête, je ne sais pas du tous comment la concevoir.

    En gros je suis entrain de créer un système d'horaire pour des émissions. Comme sur http://www.eclypsia.com/en/eclypsiatv en bas je fais un calendrier par jour.

    Se que je chercherais à faire c'est obtenir toutes les émissions qui commences à la date du jour. J'ai un champ date_début et Date_fin en datetime dans ma bdd. Mais je bloque au niveau du WHERE pour dire les émissions qui commence le 17.02.2014 à 00h jusque la dernière qui commence le 17.02.2014 à 23h59.

    Voilà, merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Une possibilité :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE date_debut >= '2014-02-17' AND date_debut < DATE_ADD('2014-02-17', INTERVAL 1 DAY)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    Afin d'avoir les dates au jour le jour, si j'utilise NOW(), il me prend même les données de demain.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `horaire` WHERE heure_debut >= Now()  AND heure_debut < DATE_ADD(Now() , INTERVAL 1 DAY)
    A moins que je ne mette dans une variable la date et ensuite je l'insère dans une requête préparée en php. je testerais ça sa peut marcher.

  4. #4
    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
    C'est parce que now() renvoie également l'heure. Vous aurez donc les émissions qui vont commencer dans les prochaines 24 heures à compter de l’exécution de la requête.
    Vous pouvez transtyper en DATE pour tronquer l'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
    FROM LaTable
    WHERE date_debut  >= now()::DATE
    AND date_debut < now()::DATE + INTERVAL '1 DAY'
    Edit : Requête pour postgresql

  5. #5
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut Émissions du jours
    Simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      SELECT * FROM horaires WHERE DATE(date_debut) = DATE(NOW())

  6. #6
    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
    Désolé, il m'avait semblé que le SGBD était postgresql.

    La requête de manzeki est correcte, mais si un index existe sur la colonne date_debut, il ne sera pas utilisé. Il faudrait donc plutôt écrire la requête comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
    FROM T
    WHERE date_debut  >= DATE(now())
    AND date_debut < DATE(now())+ INTERVAL 1 DAY ;

Discussions similaires

  1. Bug avec les champs de paramètres date
    Par nico_duflot dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 10/06/2013, 17h30
  2. [Dates] sélectionner les lignes avec même mois
    Par carelha dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2006, 15h08
  3. Réponses: 1
    Dernier message: 03/05/2006, 10h02
  4. Récupérer tous les champs avec un DISTINCT
    Par Le Mérovingien dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2005, 23h58
  5. Réponses: 4
    Dernier message: 19/10/2005, 11h26

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