Domanda

Ho un campo della data

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?

È stato utile?

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:

http://www.techonthenet.com/oracle/functions/add_months.php

http: // asktom ? .oracle.com / pls / asktom / f p = 100: 11: 0 :::: P11_QUESTION_ID: 1.157.035,034361 millions

Non sono sicuro, se ho capito la sua domanda, ma

select add_months(someDate, numberOfYears * 12) from dual

potrebbe fare il trucco

Si può provare questo:

someDate + interval '4' year

INTERVALLO

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top