日期:2014-05-16  浏览次数:20441 次

oracle 根据周次获取周开始结束日期
select 
  the_week,
  sunday,
  saturday,
  to_char(sunday,'yyyyMMdd')||'-'||to_char(saturday,'yyyyMMdd') week_desc


 from (select sunday.the_week,
       decode(sign(sunday.the_day - saturday.the_day),
              -1,
              sunday.the_day,
              sunday.the_day - 7) sunday,
       saturday.the_day saturday
  from (         select decode(to_char(wwm,'yyyy/mm/dd'),'2014/01/01','1',to_char(wwm, 'WW')+1) the_week,
                to_char(wwm, 'D') the_daynum,
               wwm the_day
          from (select trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'MM') + rownum - 1 as wwm
                  from user_objects
                 where rownum < 366)
         where to_char(wwm, 'D') = 1 or to_char(wwm,'yyyy/mm/dd')='2014/01/01') sunday,
       (                 select to_char(wwm, 'WW')+0 the_week,
               to_char(wwm, 'D') the_daynum,
               wwm the_day
          from (select trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'MM') + rownum - 1 as wwm
                  from user_objects
                 where rownum < 366)
         where to_char(wwm, 'D') = 7 or to_char(wwm,'yyyy/mm/dd')='2014/12/31') saturday
 where sunday.the_week = saturday.the_week)


where THE_WEEK=?