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 avec intervalle de dates


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Requête avec intervalle de dates
    Bonjour,

    Petit nouveau dans le monde SQL Server, je rencontre des difficultés à réaliser une requête.

    Mon besoin : récupérer des enregistrements d'une table dont le champ TDate est compris entre x et y.

    Format du champ TDate dans la table : "mm/dd/yyyy hh:mm:ss AM" ou "mm/dd/yyyy hh:mm:ss PM"

    par exemple je souhaite obtenir tous les enregistrements dont le champ TDate est compris entre le 21/06/2010 à 5H00 AM et le 22/06/2010 à 4h59 AM.
    Soit 24H de données à cheval sur 2 jours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from TTable where TDate ?????
    Si cela vous paraît enfantin, désolé mais je débute réellement.

    Merci d'avance pour votre aide.

    Cordialement,

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En SQL, les dates sont normalement formatées de cette façon : 'aaaa-mm-jj hh:mm:ss'

    Il faut donc convertir la ta colonne en format DATETIME pour pouvoir la comparer à une vraie valeur de date + heure.

    Et pour ceci :
    est compris entre
    Il y a le comparateur BETWEEN.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT les_colonnes -- Il vaut mieux nommer explicitement les colonnes utiles
    FROM TTable
    WHERE CAST(TDate AS DATETIME) BETWEEN '2010-06-21 05:00:00' AND '2010-06-22 04:59:59'
    Si le CAST ne fonctionne pas, regarde du côté des fonctions de dates de ton SGBD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour ce coup de main.

    Avec la réponse cela paraît beaucoup plus facile maintenant.

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

Discussions similaires

  1. [MySQL] Problème requête avec intervalle de date
    Par AurelienNF dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/05/2011, 14h04
  2. écriture d'une requête avec intervalle de date
    Par urbanspike dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/10/2008, 15h49
  3. Réponses: 1
    Dernier message: 23/06/2006, 19h10
  4. Requête avec Expr1: Format([Date];"ee")
    Par grenet dans le forum Access
    Réponses: 6
    Dernier message: 06/03/2006, 16h02
  5. Création requête avec gestion de date
    Par MELINE dans le forum Access
    Réponses: 1
    Dernier message: 30/09/2005, 11h12

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