-
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:
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
-
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.
-
pourquoi faire un champ de type varchar2 pour supporter une date???????????
-
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
-
Dans ce cas, le plus simple et le plus performant c'est de faire une requête du genre :
Code:
SELECT * FROM TABLE WHERE actif='O' AND date_fin BETWEEN '100412' AND '100611'
Rachid A.
-
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