Ir para o conteúdo principal

Procedure - Retorna datas de um intervalo de dias

SQL: 

create or alter procedure RETORNA_LISTA_DIAS (XINICIO date, XFIM date) returns (DATA data_do) as
  declare variable DIFERENCA integer;
  declare variable I integer;
begin
  i = 0;
  select :XFIM  -  :XINICIO  from rdb$database into :DIFERENCA;

  while (i <= :DIFERENCA) DO
  begin
    data = :xinicio + i;
    i = i +1;
    suspend;
  end
end

Chamada da procedure: 

SELECT * 
  FROM RETORNA_LISTA_DIAS('2019.07.12', current_date)

Retorno: 

| DATA       |
--------------
| 12.07.2019 |
| 13.07.2019 |
| 14.07.2019 |
| 15.07.2019 |
| 16.07.2019 |