retornar os dias uteis
preciso fazer um select no oracle que retorne a quantidade de dias uteis de um periodo que eu informo
isso tem jeito?
isso tem jeito?
Osocram
Curtidas 0
Respostas
Motta
22/06/2004
segue uma que fiz parecido como que vc quer ..
FUNCTION ULTIMO_DIA_UTIL ( pDtBase in date)
RETURN date IS
--
-- Calcula o último dia útil de um mês
--
vdata date;
vb_fim boolean;
function feriado(d in date) return boolean is
vn number(1);
begin
Select Sign(Count(*))
Into vn
From feriado
Where data_feriado = vdata;
Return (vn = 1);
end;
BEGIN
vb_fim := False;
vdata := Last_day(Trunc(pDtbase));
WHILE not (vb_fim)
LOOP
vb_fim := (to_char(vdata,´d´) not in (´1´,´7´) /*Sab/Dom*/ or
feriado(vdata));
if not (vb_fim) then
vdata := vdata - 1;
end if;
END LOOP;
RETURN vdata;
EXCEPTION
WHEN others THEN
raise;
END;
FUNCTION ULTIMO_DIA_UTIL ( pDtBase in date)
RETURN date IS
--
-- Calcula o último dia útil de um mês
--
vdata date;
vb_fim boolean;
function feriado(d in date) return boolean is
vn number(1);
begin
Select Sign(Count(*))
Into vn
From feriado
Where data_feriado = vdata;
Return (vn = 1);
end;
BEGIN
vb_fim := False;
vdata := Last_day(Trunc(pDtbase));
WHILE not (vb_fim)
LOOP
vb_fim := (to_char(vdata,´d´) not in (´1´,´7´) /*Sab/Dom*/ or
feriado(vdata));
if not (vb_fim) then
vdata := vdata - 1;
end if;
END LOOP;
RETURN vdata;
EXCEPTION
WHEN others THEN
raise;
END;
GOSTEI 0
Osocram
22/06/2004
opa....
Isso ae jah ajuda.. vou tentar modificar ele p fazer exatamente oq eu quero... mas jah ajudou bastante..
Vlw.
Isso ae jah ajuda.. vou tentar modificar ele p fazer exatamente oq eu quero... mas jah ajudou bastante..
Vlw.
GOSTEI 0