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 :

champ date + heure !


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut champ date + heure !
    Bonjour je voudrai selectionner un champ ds une table pour une date donnée

    Dans mon champ de date, j'ai une date et une heure (ex : 03/01/2005 16:00:00)

    Donc pour selectionner mon champ pour le 03/01/2005, je dois préciser
    champDatetime >= 03/01/2005 00:00:00 AND champDateTime <= 03/01/2005 23:59:59

    Mais sql ne renvoi rien pkoi ??? comment faire

    Merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pourquoi ne pas utiliser la fonction TRUNC ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 7
    Par défaut re :champ date + heure !
    Quel est ton SGBD :

  4. #4
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    je pense avoir trouvé une solution

    pour une date 03/01/2005

    je fai >02/01/2005 23:59:59 et <04/01/2005 00:00:00

    merci

  5. #5
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Si vous êtes sous Oracle, la fonction TRUNC, comme vous le suggérais Orafrance élimine la partie heure d'une date/heure !

    Donc, vous pouvez faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
      FROM TableDesEvenements
     WHERE Trunc(Date_Evt) = Trunc(Sysdate);
    pour obtenir la liste des évènements qui ont eu lieu aujourd'hui ! :-)
    (ce qui est nettement plus propre et plus efficace en termes de temps de réponses que de faire une double comparaison !)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 7
    Par défaut
    Citation Envoyé par LeoAnderson
    Si vous êtes sous Oracle, la fonction TRUNC, comme vous le suggérais Orafrance élimine la partie heure d'une date/heure !

    Donc, vous pouvez faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
      FROM TableDesEvenements
     WHERE Trunc(Date_Evt) = Trunc(Sysdate);
    pour obtenir la liste des évènements qui ont eu lieu aujourd'hui ! :-)
    (ce qui est nettement plus propre et plus efficace en termes de temps de réponses que de faire une double comparaison !)
    Le problème c'est que sur certain SGBD (sous sybase j'en suis certain) le fait d'utiliser ce genre de fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     convert(date, la_date_è_tester) = convert(date,getDate())
    supprime la possibilité au SGBD d'utilisé l'index (s'il en existe un) du champ date tester.
    donc la première solution reste meilleur si le champs est indexé

    L'exemple est valable pour SQL server (ASE) de sybase. Sous Oracle je ne sais pas si c'est valable.

  7. #7
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Sous Oracle, ça dépend de la façon dont on créé l'index ! ;-)
    Si on créé un index normal, oui, il sera ignoré !

    Par contre, si on créé un index basé sur une fonction...
    http://asktom.oracle.com/~tkyte/article1/

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 7
    Par défaut
    Interessant !!
    Faudrais que je vois si c'est le cas sous sybase... :

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

Discussions similaires

  1. Afficher les milièmes dans un champs Date Heure
    Par zooffy dans le forum ASP.NET
    Réponses: 8
    Dernier message: 27/07/2007, 14h51
  2. Left dans un champ date/heure
    Par Smix007 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/07/2007, 12h49
  3. [SQL] champ date/heure
    Par Jahprend dans le forum Access
    Réponses: 6
    Dernier message: 29/06/2006, 15h36
  4. Problème d'insertion avec un champ Date/Heure ?
    Par bds2006 dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/06/2006, 10h37
  5. [Access] Champ Date/Heure qui déconne
    Par portu dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/05/2006, 17h42

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