Com a implementação de recurso de criação de funções para o Firebird 3.0, abre-se novos horizontes de recursos no banco de dados.

Entender como criar utilizar funções será uma poderosa ferramenta para soluções do dia-a-dia.

Exemplo

SET TERM ^ ;
create or alter function StartOfMonth(PDate date) returns date...
  as -- retorna a data do primeiro dia do mes
  begin
      return PDate - extract(day from PDate)+1;
  end^
SET TERM ; ^

Utilizando a função

select StartOfMonth( cast(’01/10/2016′ as date) ) from RDB$Database