Oracle
 sql >> Database >  >> RDS >> Oracle

Come scorrere un intervallo di date in PL/SQL

Una soluzione che uso per questo è convertire l'intervallo di date in un intervallo intero che puoi utilizzare in un ciclo for, quindi riconvertire in una data per fare cose con esso. Non puoi fare alcun join o altro in questo modo, ma è una soluzione molto più piccola di quelle già pubblicate:

declare
  start_date number;
  end_date number;
  business_date varchar2(8);
begin
  start_date := to_number(to_char(to_date('2013-04-25', 'yyyy-MM-dd'), 'j'));
  end_date := to_number(to_char(to_date('2013-05-31', 'yyyy-MM-dd'), 'j'));
  for cur_r in start_date..end_date loop
    business_date := to_char(to_date(cur_r, 'j'), 'yyyy-MM-dd');
    dbms_output.put_line(business_date);
  end loop;
end;