DECLARE I number :=0; V_RQ VARCHAR(20):= TO_CHAR(SYSDATE,'YYYY-MM-DD'); BEGIN LOOP IF TO_CHAR(TO_DATE(V_RQ,'YYYY-MM-DD'),'D') = '1' OR TO_CHAR(TO_DATE(V_RQ,'YYYY-MM-DD'),'D')='7' THEN V_RQ := TO_CHAR(TO_DATE(v_rq,'YYYY-MM-DD')+1,'YYYY-MM-DD'); ELSE I:=I+1; DBMS_OUTPUT.PUT_LINE(V_RQ); V_RQ := TO_CHAR(TO_DATE(v_rq,'YYYY-MM-DD')+1,'YYYY-MM-DD'); END IF; EXIT WHEN I=7; END LOOP; END;
I number :=0;
V_RQ VARCHAR(20):= TO_CHAR(SYSDATE,'YYYY-MM-DD');
BEGIN
LOOP
IF TO_CHAR(TO_DATE(V_RQ,'YYYY-MM-DD'),'D') = '1' OR TO_CHAR(TO_DATE(V_RQ,'YYYY-MM-DD'),'D')='7' THEN
V_RQ := TO_CHAR(TO_DATE(v_rq,'YYYY-MM-DD')+1,'YYYY-MM-DD');
ELSE
I:=I+1;
DBMS_OUTPUT.PUT_LINE(V_RQ);
V_RQ := TO_CHAR(TO_DATE(v_rq,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END IF;
EXIT WHEN I=7;
END LOOP;
END;
6,
to_char(sysdate + rn - 1 + 2, 'yyyy-mm-dd'),
7,
to_char(sysdate + rn - 1 + 1, 'yyyy-mm-dd'),
to_char(sysdate + rn - 1, 'yyyy-mm-dd')) "Date"
from (select rownum rn from all_objects where rownum < 11);
======================result=====================================Date
----------
2007-08-17
2007-08-20
2007-08-21
2007-08-22
2007-08-23
2007-08-24
2007-08-277 rows selected