Oracle生成IW周日期列表

时间:2012-04-27 16:38:21

标签: sql oracle optimization

目标: 根据当前日期输出给定时间范围的IW标准周日期列表。

所需输出:当前日期= 4/27/2012,过去7个IW周日期列表

enter image description here

2 个答案:

答案 0 :(得分:5)

试试这个:

    SELECT TRUNC(SYSDATE - (LEVEL * 7), 'IW') TheDate
      FROM dual
   CONNECT BY LEVEL <= 7

答案 1 :(得分:0)

目前我正在使用此代码生成列表。我很好奇是否有更好的解决方案。但是想为任何可能正在寻找的人提供这个解决方案。

SELECT DISTINCT
  TRUNC(sysdate-(rownum+1),'iw') IW_week,
  TO_CHAR(TRUNC(sysdate-(rownum+1),'iw'),'iw') AS week_num
FROM dual
  CONNECT BY level <= 49
ORDER BY TRUNC(sysdate-(rownum+1),'iw');

当前输出:

enter image description here