Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/02/2011, 13:17
SONOFGOD
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Adicionar un mes exacto a una fecha

Gracias por la ayuda de todos

Finalmente hice esta funcion que recibe la fecha y devuelve la fecha un mes despues o antes segun el parámetro Meses si es positivo o negativo respectivametne, asi aplica para todos los meses sin importar si son de 28,29,30 o 31 días...

Código:
FUNCTION FN_ADICIONA_MES (F_Entrada DATE, Mes NUMBER)
  RETURN DATE AS
-- Recibe la fecha y la cantidad de meses que desea adicionar o restar
  F_Salida DATE NULL;
  DiaEntrada NUMBER(2);
  UltimoDia NUMBER(2);

BEGIN
	
  DiaEntrada := TO_NUMBER(TO_CHAR(F_Entrada,'DD'));
  UltimoDia := TO_NUMBER(TO_CHAR(LAST_DAY(ADD_MONTHS(F_Entrada,Mes)),'DD'));
		
  IF DiaEntrada > UltimoDia THEN
    F_Salida := LAST_DAY ( ADD_MONTHS(F_Entrada,Mes) );
  ELSE
    F_Salida:= TO_CHAR(F_Entrada,'DD')||'/'||TO_CHAR(ADD_MONTHS(F_Entrada, Mes),'MM/RRRR');
  END IF;
  RETURN F_Salida;
END FN_ADICIONA_MES; 

Última edición por SONOFGOD; 17/02/2011 a las 14:36 Razón: Optimizacion de Código