Procedure : Retorna nome do mês
Em alguns casos, precisamos que seja mostrado o nome do mês de uma determinada data.
No Firebird tem a seguinte função:
EXTRACT(MONTH FROM <DATA>)
Essa função retorna o numero inteiro, respectivo ao mês. Exemplo, se for janeiro será 1, se for fevereiro será 2 e assim sucessivamente.
Sendo assim, a Procedure a seguir pega esse numero inteiro e converte-o no nome do mês, não sendo necessário ficar fazendo CASE WHEN dentro do seu SELECT
CREATE OR ALTER PROCEDURE ZZRETORNA_NOME_MES (MES INT)
RETURNS (NOME_MES VARCHAR(20))
AS
BEGIN
NOME_MES = '';
NOME_MES = CASE :MES
WHEN 1 THEN 'JANEIRO'
WHEN 2 THEN 'FEVEREIRO'
WHEN 3 THEN 'MARÇO'
WHEN 4 THEN 'ABRIL'
WHEN 5 THEN 'MAIO'
WHEN 6 THEN 'JUNHO'
WHEN 7 THEN 'JULHO'
WHEN 8 THEN 'AGOSTO'
WHEN 9 THEN 'SETEMBRO'
WHEN 10 THEN 'OUTUBRO'
WHEN 11 THEN 'NOVEMBRO'
WHEN 12 THEN 'DEZEMBRO'
ELSE '' END;
SUSPEND;
END
Para chamar a procedure, use a seguinte linha de comando
SELECT * FROM ZZRETORNA_NOME_MES(2);