17 agosto 2011

SP para retornar último dia do mês no Firebird

Esta SP muito útil retorna, com base nos parâmetros dia e ano o último dia do mês.


SET TERM ^ ;

create or alter procedure SP_ULTIMODIAMES (
MES DIAS,
ANO DIAS)
returns (
ULTIMO_DIA smallint)
as
declare variable VPROXMES integer;
declare variable DATA date;
begin
if (:mes is null) then
mes=EXTRACT(month FROM CURRENT_DATE);

if (:ano is null) then
ano=EXTRACT(YEAR FROM CURRENT_DATE);

vproxmes = :mes+1;

if (:mes=12) then
begin
ano= :ano+1;
vproxmes = 1;
end

DATA = '01.'||:vproxmes||'.'||ANO;
ultimo_dia = EXTRACT(DAY FROM (CAST(DATA AS DATE)-1));
suspend;
end^

SET TERM ; ^

COMMENT ON PROCEDURE SP_ULTIMODIAMES IS
'Retorna o ultimo dia do mes';

GRANT EXECUTE ON PROCEDURE SP_ULTIMODIAMES TO SYSDBA;




Nenhum comentário:

Postar um comentário