declare
startDate date;
endDate date;
m_startDate varchar2(50);
m_endDate varchar2(50);
iteratorNum number;
begin
for iteratorNum in 14..35 loop
select dateTime ,dateTime+6 into startDate, endDate from
(
select dateTime, Rownum rn from
(
select trunc(sysdate, 'yyyy')+rownum-1 dateTime from dba_objects
where rownum <= (select add_months(trunc(sysdate, 'yyyy'), 12) - trunc(sysdate, 'yyyy') from dual)
) b where lower(ltrim(rtrim(to_char(b.dateTime, 'day','NLS_DATE_LANGUAGE = AMERICAN'))))= 'monday'
) T
where T.rn +1 = iteratorNum;
dbms_output.put_line('第'||iteratorNum||'周,開始時間:'||startDate||'結束時間'||endDate);
end loop;
for iteratorNum in 4..8 loop
if iteratorNum = 4 then
m_startDate := '2019-04';
m_endDate := '2019-04';
elsif iteratorNum = 5 then
m_startDate := '2019-05';
m_endDate := '2019-05';
elsif iteratorNum = 6 then
m_startDate := '2019-06';
m_endDate := '2019-06';
elsif iteratorNum = 7 then
m_startDate := '2019-07';
m_endDate := '2019-07';
else
m_startDate := '2019-08';
m_endDate := '2019-08';
end if;
select to_date(m_startDate,'yyyy-MM'),
last_day(to_date(m_endDate,'yyyy-MM'))
into m_startDate, m_endDate
from dual;
dbms_output.put_line('第'||iteratorNum||'月,開始時間:'||m_startDate||'結束時間'||m_endDate);
end loop;
end;