Oracle Data - Come aggiungere anni alla data di
-
26-10-2019 - |
Domanda
Ho un campo della data ??p>
DATE = 10/10/2010
sum = 4 (questo sono certo numero di anni di calcolo)
c'è un modo per aggiungere quattro anni a 10/10/2010 e renderlo 2014/10/10?
Soluzione
Prova ad aggiungere mesi (12 * numero di anni), invece. Ti piace questa -
add_months(date'2010-10-10', 48)
Altri suggerimenti
Usa add_months
Esempio:
SELECT add_months( to_date('10-OCT-2010'), 48 ) FROM DUAL;
Attenzione
add_months, restituisce l'ultimo giorno del mese risultante se si introduce l'ultimo giorno di un mese per cominciare.
Così add_months(to_date('28-feb-2011'),12)
restituirà 29-Feb-2012 come un risultato.
Credo che si potrebbe usare la funzione ADD_MONTHS()
. 4 anni è di 48 mesi, in modo da:
add_months(DATE,48)
Ecco alcune informazioni sull'utilizzo della funzione:
Non sono sicuro, se ho capito la sua domanda, ma
select add_months(someDate, numberOfYears * 12) from dual
potrebbe fare il trucco
Una possibilità più a parte ADD_MONTHS
SELECT
SYSDATE,
SYSDATE
+ TO_YMINTERVAL ( '1-0' )
FROM
DUAL;
SYSDATE SYSDATE+TO_YMINTERVAL('1-0')
--------- ----------------------------
29-OCT-13 29-OCT-14
1 row selected.
SELECT
SYSDATE,
SYSDATE
+ TO_YMINTERVAL ( '2-0' )
FROM
DUAL;
SYSDATE SYSDATE+TO_YMINTERVAL('2-0')
--------- ----------------------------
29-OCT-13 29-OCT-15
1 row selected.
SELECT
TO_DATE ( '29-FEB-2004',
'DD-MON-YYYY' )
+ TO_YMINTERVAL ( '1-0' )
FROM
DUAL
*
Error at line 4
ORA-01839: date not valid for month specified
Ma l'ultimo è illegale poiché non v'è nessun giorno 29 febbraio del 2005, da cui non riesce sui casi degli anni bisestili (29 febbraio)
Leggi il documentazione per la stessa