Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie man in PL/SQL über einen Datumsbereich iteriert

Eine Lösung, die ich dafür verwende, besteht darin, den Datumsbereich in einen ganzzahligen Bereich umzuwandeln, den Sie in einer for-Schleife verwenden können, und dann wieder in ein Datum umzuwandeln, um etwas damit zu tun. Sie können auf diese Weise keine Joins oder ähnliches erstellen, aber es ist eine viel kleinere Lösung als die bereits geposteten:

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;