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 :

Comment incrémenter une date d'un an ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par défaut Comment incrémenter une date d'un an ?
    Salut à tous,

    J’ai un champ date.
    Son format se masque est dd/mm/yy.
    Si je veux incrémenter l’année seulement comment faire ?
    Exemple : ma date est 01/01/02 je veux la rendre 01/01/03.

    Merci d’avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    l'unite de base d'une date Oracle est le jour. Pour ajouter un jour il faut donc ajouter 1 (sysdate + 1)
    Pour ajouter 1 heure il faut ajouter 1 / 24, etc.

  3. #3
    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
    Pour ajouter 1 année, soit passer par un Add_months(v_date, v_mois=12), mais là y'a des soucis avec les derniers jours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    SELECT LEAST(
    TO_CHAR(v_dates,'DD'), TO_CHAR(ADD_MONTHS(v_dates, v_mois),'DD')) 
    || '/' 
    || TO_CHAR(ADD_MONTHS(v_dates, v_mois),'MM/YYYY') 
    FROM dual
    
    Soit décrypter en caractère pour recomposer la date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT TO_DATE(
    TO_CHAR(SYSDATE,'DD/MM/') 
    || (TO_NUMBER(TO_CHAR(SYSDATE,'YY'))+1)
    ,'DD/MM/YY')
    FROM dual
    

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Peux-tu expliciter ta pensée sur le problème avec la fonction add_months STP ??? Je ne comprend pas d'où viens le pbme.

    Merci.

    @+,
    NicK.

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL>  select sysdate, add_months(sysdate,12) from dual
      2  /
    SYSDATE    ADD_MONTHS
    ---------- ----------
    27/04/2006 27/04/2007

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL> select add_months (to_date ('28/02/2007', 'DD/MM/YYYY'), 12) from dual;
    ADD_MONTH
    ---------
    29-FEB-08

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 56
    Par défaut
    Citation Envoyé par SheikYerbouti Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL>  select sysdate, add_months(sysdate,12) from dual
      2  /
    SYSDATE    ADD_MONTHS
    ---------- ----------
    27/04/2006 27/04/2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select sysdate, sysdate + interval '1' year from dual

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

Discussions similaires

  1. [débutant] comment incrémenter une date
    Par shamri dans le forum Android
    Réponses: 2
    Dernier message: 15/06/2010, 14h22
  2. Comment incrémenter une date par pas du Mois ?
    Par tarbala dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/11/2008, 06h16
  3. Comment incrémenter une date
    Par hamadi_insat dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2006, 22h53
  4. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 19h44
  5. Comment récuperer une date depuis une chaine?
    Par shopoto dans le forum ASP
    Réponses: 4
    Dernier message: 12/05/2004, 16h17

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