查找从下周开始未来N个星期一的日期

解决方案 »

  1.   


    select trunc(sysdate,'w')+1+n*7 from dual--获取n个周后的周一
    --比如获得两周后的周一的日期
    SQL> select trunc(sysdate,'w')+1+2*7 from dual;TRUNC(SYSD
    ----------
    2011-06-06
      

  2.   


    --上面给出的是从这个周一之后的任一周的周一的求法
    --下面是你想要的,下周开始未来N个星期一的日期
    --其实道理都差不多,就是截取本周的周一,然后加上8天,就得到下一个周周一的日期,
    --最后加上你想要的周*天数,就得到了结果,1周=7天:
    SQL> select trunc(sysdate,'w')+8 from dual;TRUNC(SYSD
    ----------
    2011-05-30
    select trunc(sysdate,'w')+8+n*7 from dual--获取下走之后的n个周的周一
    SQL> select trunc(sysdate,'w')+8+1*7 from dual;TRUNC(SYSD
    ----------
    2011-06-06
      

  3.   

    SQL> --n=10
    SQL> SELECT trunc(SYSDATE, 'd') + 1 + LEVEL * 7 monday
      2    FROM dual
      3  CONNECT BY LEVEL <= 10;MONDAY
    ----------
    2011-05-30
    2011-06-06
    2011-06-13
    2011-06-20
    2011-06-27
    2011-07-04
    2011-07-11
    2011-07-18
    2011-07-25
    2011-08-01已选择10行。SQL>