Olá,
Após tentar vários recursos do PostgreSQL, consegui realizar o procedimento
através de uma função.
Segue abaixo o código que utilzei:
create or replace function diasUteis(pDataInicio date, pDataFim date)
returns integer
as $_$ declare
_cont integer;
_proxData date;
begin
_proxData := pDataInicio;
_cont := 0;
while _proxData <= pDataFim loop
--se _proxData = fim de semana nao incremente _cont
if (select extract(DOW from date_trunc('day',_proxData)) not between
1 and 5) is false then
--aqui faco uma checagem na minha tabela de
feriados/imprensados, se _proxData = feriado,
--...
_cont := _cont + 1;
end if;
--incremente _prox
_proxData := _proxData + 1;
end loop;
return _cont;
end $_$
language 'plpgsql' volatile;
--
Grato pela atenção,
Daniel Falcão
On 10/24/07, Daniel Falcão <[EMAIL PROTECTED]> wrote:
>
> Olá,
>
> Na realidade eu tenho uma tabela de feriados e imprensados, resolvi apenas
>
> simplificar a questão para ficar mais fácl o entendimento. Para saber se
> um
> determinado dia é sábado ou domingo, podemos usar o "extract (DOW)". :)
>
> Estou comecando a acreditar que o SQL nao oferece recursos para esse tipo
> de situacao, o melhor deve ser construir uma "function" em PL/PGSQL mesmo.
>
> []'s
> Daniel Falcão
>
> On 10/24/07, sergio <[EMAIL PROTECTED]> wrote:
> >
> > Não sei se você vai chegar aos 100% de dias uteis, pois existem os
> > feriados
> > municipais por exemplo e até mesmo dias em que a empresa possa vir a não
> > trabalhar. Eu tive que fazer algo semelhante. Optei por fazer uma rotina
> > que
> > retornasse os sabados e domingos e o usuario indicasse manualmente quais
> > os
> > dias que não foram trabalhados.
> >
> > ----- Original Message -----
> > From: "Dickson Guedes" < [EMAIL PROTECTED]>
> > To: "Comunidade PostgreSQL Brasileira" <
> > [email protected]>
> > Sent: Wednesday, October 24, 2007 1:52 PM
> > Subject: Re: [pgbr-geral] Selecionando dias uteis durante determinado
> > periodo
> >
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Daniel Falcão escreveu:
> > > Olá, (...) 03. Preciso saber justamente a quantidade de "dias úteis
> > > do mês", mesmo que o indivíduo não tenha comparecido em nenhum dia
> > > (por exemplo, dias úteis no mês de 09/2007 = 20, no mês 10/2007 =
> > > 23);
> > >
> > > PS: A função extract (DOW...) é bem interessante, estamos no
> > > caminho certo.
> > E o que fazer com os feriados? Você vai manter isso também de alguma
> > forma?
> >
> > [ ]s
> >
> > Guedes
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.2 (GNU/Linux)
> > Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
> >
> > iD8DBQFHH3hDfNj5A+QkLMoRAiMRAJ9+9FFauV56o8mju/iqA6ta5jAsOACdHlBA
> > SEu5peag4NbjFjXKLLXsZ0c=
> > =XK7k
> > -----END PGP SIGNATURE-----
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
>
>
>
> --
>
> Atenciosamente,
> Daniel Falcão
>
--
Atenciosamente,
Daniel Falcão
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral