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.
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.
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.
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
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
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
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
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.
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
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![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select sysdate, sysdate + interval '1' year from dual
Partager