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 :

Requête avec un intervalle de date


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 34
    Points : 27
    Points
    27
    Par défaut Requête avec un intervalle de date
    Bonjour,

    Je suis actuellement en projet dans mon école, et je cherche a faire une requete sur un intervalle de date. Les dates sont stocké au format date sur une bdd oracle.

    ma requete ressemble à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM workshop1.facture WHERE acquittee = 0 AND date_facture BETWEEN  SYSDATE - NUMTODSINTERVAL(3,'MONTH') AND SYSDATE - NUMTODSINTERVAL(2,'MONTH');
    je cherche à sélectionner les enregistrement compris entre aujourd'hui-3mois et aujourd'hui -2mois.

    Cependant il me repond
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR à la ligne 1 :
    ORA-01760: argument interdit pour la fonction
    J'attend votre aide avec impatience.

    Merci d'avance.

  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 : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM workshop1.facture WHERE acquittee = 0 AND date_facture BETWEEN  ADD_MONTHS(SYSDATE, -3) AND ADD_MONTHS(SYSDATE, -2);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Je ne connaissais pas la fonction NUMTODSINTERVAL : après consultation de la doc, sur l'idée ça semble correspondre à ce que tu cherches mais ça n'accepte que les valeurs DAY, HOUR, MINUTE, SECOND. Pas de MONTH possible donc :
    http://sheikyerbouti.developpez.com/pl_sql/?page=Chap3

    Par contre, tu peux utiliser la fonction ADD_MONTHS qui s'y prête très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM workshop1.facture WHERE acquittee = 0 AND date_facture BETWEEN  ADD_MONTHS(SYSDATE, -3) AND ADD_MONTHS(SYSDATE, -2);

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM workshop1.facture 
    WHERE acquittee = 0 AND 
    date_facture BETWEEN  SYSDATE - NUMTOYMINTERVAL(3,'MONTH') 
    AND SYSDATE - NUMTOYMINTERVAL(2,'MONTH');
    mais attention, 31-Mai -08 - (3 mois) = 31-Févr.-08 !!! d'où l'avantage d'employer ADD_MONTHS

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup,

    J'ai utilisé les "NUMTODSINTERVAL". c'est pour un projet à mon école, je ne retoucherais plus jamais a Oracle donc le probleme de fevrier ou d'un autre mois ne me pose pas de probleme :d!!!

    Encore merci

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

Discussions similaires

  1. Requête avec différents formats de date
    Par Ethan831 dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/04/2010, 00h51
  2. Rapprocher une date avec un intervalle de dates?
    Par Mumum2 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/08/2008, 02h09
  3. Requête avec travail sur les dates
    Par masseur dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/07/2008, 13h11
  4. Requête avec comparaison pour la date
    Par buzz! dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 10/08/2006, 18h00
  5. MYSQL - requete avec un intervale de DATE
    Par mastronic dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/08/2006, 17h25

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