How to iterate over a date range in PL/SQL

前端 未结 7 1921
梦毁少年i
梦毁少年i 2020-12-29 12:56

I need to write a report that generates summary totals against a table with date ranges for each record.

table data:
option   start_date   end_date
opt1              


        
7条回答
  •  情书的邮戳
    2020-12-29 13:21

    Using while loop (better)

    declare dfrom date; dtill date; day date; begin dfrom := TO_DATE('09.09.1988', 'dd.mm.yyyy'); dtill := TO_DATE('19.09.1988', 'dd.mm.yyyy'); day := dfrom; WHILE day <= dtill LOOP DBMS_OUTPUT.PUT_LINE(day); day := day + 1; END LOOP; end; / //using cursor declare dfrom date; dtill date; begin dfrom := TO_DATE('09.09.1988', 'dd.mm.yyyy'); dtill := TO_DATE('19.09.1988', 'dd.mm.yyyy'); FOR cur IN ( SELECT dfrom + LEVEL - 1 AS today FROM dual CONNECT BY LEVEL <= dtill - dfrom + 1 ) LOOP DBMS_OUTPUT.PUT_LINE(cur.today); END LOOP; end; /

提交回复
热议问题