例如: 给出'2009-8-26' 
用SQL怎样求的这天所在的星期的时间段 '2009-8-24' - '2009-8-30',一周从周一开始
请各为高手指点,说明我用的是ORCAL数据库

解决方案 »

  1.   

    SELECT NEXT_DAY(to_date('20090826','yyyymmdd'),'MONDAY')-7 "MONDAY",
           CASE WHEN NEXT_DAY(to_date('20090826','yyyymmdd'),'SUNDAY')-7=to_date('20090826','yyyymmdd') 
                THEN to_date('20090826','yyyymmdd')
                ELSE NEXT_DAY(to_date('20090826','yyyymmdd'),'SUNDAY')  END "SUNDAY" 
    FROM DUAL;
      

  2.   

    select next_day(to_date('2009-08-26','yyyy-MM-dd'), 2) - 7, 
           next_day(next_day(to_date('2009-08-26','yyyy-MM-dd'), 2) - 7, 1)
      from dual
      

  3.   

    谢谢楼上朋友的回答,另外我再想问下,如果我把next_day(to_date(?,'yyyy-MM-dd'), 2) - 7 中的日期当作一个参数传近来可以这么做吗?