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

Oracle Discussion :

Problème de SELECT avec un champ de type DATE dans la clause WHERE ?


Sujet :

Oracle

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut Problème de SELECT avec un champ de type DATE dans la clause WHERE ?
    Bonjour,

    Je ne suis pas habitué à la syntaxe SQL d'Oracle...

    Pouvez-vous me dire ce qui n'est pas correct dans ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE HORAIRE=TO_DATE('16/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE
    Information : HORAIRE est un champ de type DATE.

    Elle ne provoque aucune erreur, mais également ne retourne aucun résultat...

    Merci d'avance,
    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par MaTHieU_
    Bonjour,

    Je ne suis pas habitué à la syntaxe SQL d'Oracle...

    Pouvez-vous me dire ce qui n'est pas correct dans ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE HORAIRE=TO_DATE('16/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE
    Information : HORAIRE est un champ de type DATE.

    Elle ne provoque aucune erreur, mais également ne retourne aucun résultat...

    Merci d'avance,
    Mathieu
    sans doute qu'il n'y a aucun horaire à 00:00 !

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE trunc(HORAIRE)=TO_DATE('16/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE
    ou mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE HORAIRE >= TO_DATE('16/08/2006','DD/MM/YYYY')
         and HORAIRE < TO_DATE('17/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    essaye LIKE à la place de =

    En effet, une date est composée de la date mais aussi de l'heure

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Pas mieux (grillé)
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par nuke_y
    Pas mieux (grillé)
    ???

    je dis mieux, car employe l'index sur la date, si disponible

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par laurentschneider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE trunc(HORAIRE)=TO_DATE('16/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE
    ou mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * FROM HISTORIQUE_CONTACT
         WHERE HORAIRE >= TO_DATE('16/08/2006','DD/MM/YYYY')
         and HORAIRE < TO_DATE('17/08/2006','DD/MM/YYYY')
         ORDER BY PANEL,HORAIRE
    je me permets de préciser le "ou mieux"

    En fait, la première proposition ne permet pas d'utiliser l'index sur la colonne HORAIRE (si il y en a un bien entendu ). En effet, l'application d'une fonction (ici TRUNC) sur une colonne inhibe l'index. La deuxième proposition permet de passer par l'index et améliore les performances... en principe

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par laurentschneider
    ???

    je dis mieux, car employe l'index sur la date, si disponible
    je pense que : pas mieux = je n'ai pas mieux à proposer

  8. #8
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Bah j'allais écrire la même chose que laurentschneider et j'ai vu sa réponse en voyant les derniers posts en dessous de la zone de réponse. Dépité j'ai crié ma frustration
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  9. #9
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    Merci pour votre aide, ça fonctionne parfaitement avec la deuxième solution !

    Mathieu
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

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

Discussions similaires

  1. Problème applyupdate avec un champ de type Date
    Par kaouane dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/10/2011, 01h36
  2. [AC-2003] Problème d'arrondi avec les champs de type réel simple
    Par gege2061 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 15/09/2009, 17h58
  3. [MySQL] Problème d'insert avec un champ de type DateTime
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/05/2009, 03h45
  4. [MySQL] Insertion avec un champ de type date
    Par souadmaa dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/02/2008, 11h27
  5. Réponses: 3
    Dernier message: 18/09/2006, 20h55

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