Fórum retornar os dias uteis #27838
22/06/2004
0
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
Curtir tópico
+ 0
Responder
Posts
22/06/2004
Motta
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;
Responder
Gostei + 0
22/06/2004
Osocram
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)