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;
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;
Comentários
Postar um comentário