agora vai:
create or replace function dias_nummes(mes integer,ano integer) returns
varchar as
$$
declare
 retorno integer;
 ano_ integer;
 mes_ integer;
begin
 if (mes=12) then
    ano_:=ano+1;
    mes_ := mes;
 else
    ano_:=ano;
    mes_:=mes+1;
 end if;
 retorno := extract(day from cast( ano_||'-'||(mes_)||'-1' as date)-1);
 return retorno ;
end;
$$  language 'plpgsql';
select dias_nummes(3,2006);
select dias_nummes(2,2006);
select dias_nummes(12,2008);


Rodrigo Hjort escreveu:
> Hmm, e funcionará para Dezembro?
>
> 2006/12/5, Iannsp <[EMAIL PROTECTED]>:
>> Essa é minha proposta para o problema de quantidade de dias:
>> create or replace function dias_nummes(mes integer,ano integer) returns
>> varchar as
>> $$
>> declare
>>  retorno integer;
>> begin
>>  retorno := extract(day from cast( ano||'-'||(mes+1)||'-1' as date)-1);
>>  return retorno ;
>> end;
>> $$  language 'plpgsql';
>> exemplos:
>> select dias_nummes(3,2006);
>> =31
>> select dias_nummes(2,2006);
>> =28
>> select dias_nummes(2,2008);
>> =29
>>
>


-- 
Ivo Nascimento
Iann tech - Desenvolvendo soluções com performance e segurança
http://www.ianntech.com.br

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a