year to_date to_char primer mes funcion formato fecha ejemplos add_years oracle oracle10g date-arithmetic

to_date - to_char oracle ejemplos



Fecha de Oracle-Cómo agregar años hasta la fecha (6)

Tengo un campo de fecha

DATE = 10/10/2010

suma = 4 (este es el número de años por cálculo)

¿Hay alguna manera de agregar cuatro años al 10/10/2010 y hacer que sea 10/10/2014?



Intente agregar meses (12 * número de años) en su lugar. Me gusta esto-

add_months(date''2010-10-10'', 48)


No estoy seguro, si entendí tu pregunta correctamente, pero

select add_months(someDate, numberOfYears * 12) from dual

podría hacer el truco


Puedes probar esto:

someDate + interval ''4'' year

INTERVAL


Una opción más aparte de 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

Pero el último es ilegal ya que no hay 29 de febrero de 2005, por lo que falla en los casos de año bisiesto (29 de febrero)

Lea la documentation para el mismo.


Usa add_months

Ejemplo:

SELECT add_months( to_date(''10-OCT-2010''), 48 ) FROM DUAL;

Advertencia
add_months, devuelve el último día del mes resultante si ingresó el último día de un mes para comenzar.

Entonces add_months(to_date(''28-feb-2011''),12) devolverá 29-feb-2012 como resultado.