Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/11/2007, 16:38
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Re: dias entre dos fechas Oracle

Hola,

A ver que tal va esto...

Código:
CREATE OR REPLACE FUNCTION days(p_from_date IN DATE, p_to_date IN DATE)
   RETURN NUMBER IS
b_days NUMBER;
BEGIN

  b_days := TRUNC(p_to_date) - TRUNC(p_from_date)  
       - ((TRUNC(p_to_date,'D')-TRUNC(to_date(p_from_date),'D'))/7)*2
       + 1;

  IF TO_CHAR(p_to_date,'D') = '7' THEN
    b_days := b_days - 1;
  END IF;

  IF TO_CHAR(p_from_date,'D') = '1' THEN
    b_days := b_days - 1;
  END IF;
  RETURN(b_days);

END;
/

Function created.

SQL> select days(to_date('01/11/2007','dd/mm/yyyy'),to_date('06/11/2007','dd/mm/yyyy')) from dual;

DAYS(TO_DATE('01/11/2007','DD/MM/YYYY'),TO_DATE('06/11/2007','DD/MM/YYYY'))
---------------------------------------------------------------------------
                                                                          4
Hay 6 dias entre las dos fechas y un fin de semana.

Referencia: Oracle Resource Stop.

Saludos