求一个PL/SQL语句
条件:从今天算起,7个工作日(不包括周六周日)内的所有日期
举个例子:
比如今天是8月17号,是星期5,我要得到的结果是
8月17日
8月20日
8月21日
8月22日
8月23日
8月24日
8月27日请各位帮忙下了

解决方案 »

  1.   

    TO_CHAR(SYSDATE,'DAY'),可以判断是星期几
      

  2.   

    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;
      

  3.   

    select distinct decode(to_char(sysdate - 1 + rn - 1, 'd'),
                           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