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 :

requete between sur dates


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 95
    Points : 51
    Points
    51
    Par défaut requete between sur dates
    Bonjour voici ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select to_date(datetat) as resultdate, count(produit) as result
    from ligclts
    where datetat between '14/02/2008' and sysdate
    group by to_date(datetat)
    order by to_date(datetat) asc
    le resultat:
    2008-02-14 00:00:00.0 5836
    2008-02-15 00:00:00.0 5635
    2008-02-18 00:00:00.0 1659
    Comment afficher les dates sous le format DD/MM/YYYY?
    Quelqu'un pourrais t-il me convertir ma requete?
    Merci

  2. #2
    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
    fallait pas te sentir obligé de rouvrir une discussion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(datetat,'DD/MM/YYYY') AS resultdate, count(produit) AS result
    FROM ligclts
    WHERE datetat BETWEEN '14/02/2008' AND sysdate
    GROUP BY to_date(datetat)
    ORDER BY to_date(datetat) ASC
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set nls_date_format='DD/MM/YYYY';
    avec la même requête au TO_DATE(datetat) près... pour la n-ième fois un TO_DATE sur une colonne de type DATE est inutile

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    Si je mets un select to_char(datetat,'DD/MM/YYYY') j'ai l'erreur:
    n'est pas une expression GROUP BY




    Citation Envoyé par orafrance Voir le message
    fallait pas te sentir obligé de rouvrir une discussion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(datetat,'DD/MM/YYYY') AS resultdate, count(produit) AS result
    FROM ligclts
    WHERE datetat BETWEEN '14/02/2008' AND sysdate
    GROUP BY to_date(datetat)
    ORDER BY to_date(datetat) ASC
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set nls_date_format='DD/MM/YYYY';
    avec la même requête au TO_DATE(datetat) près... pour la n-ième fois un TO_DATE sur une colonne de type DATE est inutile

  4. #4
    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
    Points : 3 199
    Points
    3 199
    Par défaut
    et alors ??? le message n'est pas assez clair ?

    modifiez votre clause group by....

    faites un petit effort par vous mêmes, vous n'en comprendrez que mieux !

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Encore cette erreur : to_date(datetat) !!

    datetat est une DATE => PAS DE TO_DATE !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT to_char(datetat,'DD/MM/YYYY') AS resultdate, count(produit) AS result
    FROM ligclts
    WHERE datetat BETWEEN to_date('14/02/2008', 'DD/MM/YYYY') AND sysdate
    GROUP BY to_char(datetat,'DD/MM/YYYY')
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    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
    Points : 3 199
    Points
    3 199
    Par défaut
    Et il vaut mieux, et de loin, préférer l'utilisation de NLS_DATE_FORMAT car c'est plus optimisé et prévu pour !

Discussions similaires

  1. Requetes HQL sur dates
    Par kubowsky dans le forum Hibernate
    Réponses: 3
    Dernier message: 30/07/2009, 00h21
  2. Requete - Operation sur date
    Par beamer dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/01/2009, 10h03
  3. [MySQL] Requête et between sur dates ?
    Par jeronimo83 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/07/2008, 10h45
  4. Requete Selection Sur Date
    Par otaquet dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/11/2006, 11h57
  5. requete selection sur date
    Par otaquet dans le forum Access
    Réponses: 24
    Dernier message: 25/10/2006, 10h36

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