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

SQL Oracle Discussion :

PB Between date


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut PB Between date
    Bonjour

    J'ai une date dans une table et je voudrais sélectionner tous les enregistrement dont la date est comprise entre 2 valeurs.
    J'ai essayé ca, mais marche pô:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE actif='O' AND date_fin BETWEEN to_date('100412', 'yymmdd') AND to_date('100611','yymmdd')
    Ca ne me retourne rien du tout...alors que je suis sur d'avoir des valeurs correctes.
    Sachant que dans ma table le champs date_fin a un type VARCHAR2(6) et que le contenu est au format aammjj

    Merci pour votre aide

    Marco

  2. #2
    Membre régulier Avatar de Doracle
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    Si ton champs est de type Varchar2, pourquoi alors fais-tu la conversion en to_date ?
    Pour rappel, la fonction to_date convertis au format DD-MON-YY, comme par exemple 10-JAN-09.

    Donc soit tu changes le type de données de ta table ainsi que toutes les valeurs déjà saisies, soit tu n'utilises pas de fonction de conversion dans ton ordre SQL.

  3. #3
    Membre averti Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Points : 303
    Points
    303
    Par défaut
    pourquoi faire un champ de type varchar2 pour supporter une date???????????

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Vous avez comparé une chaine de caractère (date_fin) à un interval de date (type date).

    Il faut mettre to_date(date_fin,'yymmdd') au lieu de fate_fin dans la clause where de votre requête.

    Note:

    Eviter d'utiliser varchar2 pour des variables contenant des dates

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    Dans ce cas, le plus simple et le plus performant c'est de faire une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TABLE WHERE actif='O' AND date_fin BETWEEN '100412' AND '100611'
    Rachid A.

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Merci à tous

    Vous avez raison..je me suis laissé embarqué et je n'ai pas vu l'erreur et la simplicité de la solution !!!

    Pourquoi une varchar pour une date, parce que c'est la première fois que j'utilise Oracle et que je n'ai pas voulu me compliquer la tache.

    Désolé pour le bruit

    Marco

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

Discussions similaires

  1. problème avec between date
    Par jeanpierre215 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/09/2010, 17h58
  2. between date dans requête donne des faux résulats
    Par pschmidtke dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 08/06/2006, 16h43
  3. Between + date
    Par roots_man dans le forum ASP
    Réponses: 9
    Dernier message: 30/03/2006, 14h45
  4. [Oracle] Between date
    Par malhivertman1 dans le forum Langage SQL
    Réponses: 25
    Dernier message: 14/02/2006, 09h22
  5. [VB6]Between date
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2006, 15h38

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