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

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    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 éminent sénior
    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
    Points : 11 862
    Points
    11 862
    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 é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
    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 régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    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 éminent sénior
    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
    Points : 11 862
    Points
    11 862
    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
    Points : 3 609
    Points
    3 609
    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
    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
    c'est balaud

  8. #8
    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
    Il y a un post du 07/04/2006 sur le pb du Add_months :

    <<
    Exact, je viens de vérifier dans la DOC :

    http://download-west.oracle.com/docs...tion.htm#76719

    ADD_MONTHS returns the date d plus n months. The argument n can be any integer. If d is the last day of the month or if the resulting month has fewer days than the day component of d, then the result is the last day of the resulting month. Otherwise, the result has the same day component as d.
    >>

  9. #9
    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
    Comme diraient certains : "ce n'est pas un bug, c'est une fonctionnalité"

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    Par défaut
    salut a tous
    j'ai utilusé cette solution
    select sysdate, add_months(sysdate,12) from dual
    et mon problem est résolut
    [FONT='Times New Roman']Merci infiniment pour votre aide[/FONT]
    [FONT='Times New Roman']comment ajouter résolut au sujet[/FONT]

  11. #11
    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
    En gaut à droite, menu "Outil de la discussion" !

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

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 53
    Points : 129
    Points
    129
    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

  13. #13
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 000
    Points : 2 501
    Points
    2 501
    Par défaut
    Patrick, tu as uppé un post de 15 ans...

  14. #14
    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
    Oh punaise, merci Ike de me faire remarquer qu'il est si vieux .. 15 ans !!
    Bon pour compléter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ADD_MONTHS (TO_DATE ('28/02/2007', 'DD/MM/YYYY'), 12) add_months_, TO_DATE ('28/02/2007', 'DD/MM/YYYY') + interval '1' YEAR interval_
    FROM dual;
     
    ADD_MONTHS_	INTERVAL_
    29/02/2008	28/02/2008
    La "fonctionnalité" du add_months n'est pas reprise dans le INTERVAL

+ 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