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![]()
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.
Comme diraient certains : "ce n'est pas un bug, c'est une fonctionnalité"![]()
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]
En gaut à droite, menu "Outil de la discussion" !![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select sysdate, sysdate + interval '1' year from dual
Patrick, tu as uppé un post de 15 ans...
Oh punaise, merci Ike de me faire remarquer qu'il est si vieux .. 15 ans !!
Bon pour compléter :
La "fonctionnalité" du add_months n'est pas reprise dans le INTERVAL
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
Partager