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 :

Date du jour moins un mois (requête SQL)


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Date du jour moins un mois (requête SQL)
    Bonjour à tous.
    Voilà mon problème.
    J'ai une requête SQL dans laquelle j'ai une condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MV_CONS_MOIS.ANNEE_MOIS = à partir de la (date du jour) -1 mois , format YYYYMM
    Le problème ici c'est que j'essaye de comparer des chiffres, car ANNEE_MOIS est déclarée en number et est de la forme YYYYMM, à un format date.
    Je me demande donc comment convertir ce number en format date.
    Après, je sais que l'on récupère la date du jour année et mois comme je le souhaite avec ce qui donnerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MV_CONS_MOIS.ANNEE_MOIS = (sysdate, 'YYYYMM')
    une fois que ANNEE_MOIS serait converti en date.

    Mais comment lui dire moins un mois ?
    Et j'ai aussi une contrainte, si date jour – 1 mois = Mois d’août, on recule jusqu’en juillet.

    J'espère m'être bien exprimé.
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Par défaut
    Bonjour,

    Pour les conversions vous devriez jeter un oeil a cette page. Plus precisemment les fonctions TO_CHAR et TO_DATE pour votre probleme :
    http://download.oracle.com/docs/cd/B...001.htm#i88892

    Concernant les mois a soustraire, la fonction ADD_MONTHS fera l'affaire.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci.
    Je vais regarder ça de suite.
    Si un nouveau problème se pose je viendrais ici !

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Attention à ADD_MONTHS qui, lorsque tu donnes le dernier jour d'un mois te renverra le dernier jour d'un mois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ADD_MONTHS(TO_DATE('28/02/2010', 'DD/MM/RRRR'), 1) next_month
    FROM dual
     
    next_month
    31/03/2010

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Par défaut
    Attention à ADD_MONTHS qui, lorsque tu donnes le dernier jour d'un mois te renverra le dernier jour d'un mois.
    Ce qui est correcte lorsque l'on raisonne en mois. De meme que la fonction retournera le premier jour du mois suivant si on lui donne le premier jour d'un mois en parametre.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> SELECT add_months(to_date('01/01/2010' , 'dd/mm/yyyy') , 1) as ma_date FROM dual ;
     
    MA_DATE
    -----------
    01/02/2010

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jorafali Voir le message
    Ce qui est correcte lorsque l'on raisonne en mois.
    Oui ? C'est une logique toute relative et fort discutable, tout de même... Ajouter un mois au 28 février et tomber sur le 31 mars...

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/04/2015, 10h12
  2. Réponses: 7
    Dernier message: 20/02/2015, 10h46
  3. Réponses: 7
    Dernier message: 15/02/2008, 12h36
  4. pb date : nb jours dans un mois
    Par clairette dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2006, 15h30
  5. Requete SQL sur table dbase et date du jour
    Par Jean-François PETIT dans le forum Bases de données
    Réponses: 5
    Dernier message: 29/03/2005, 09h31

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