【发布时间】:2012-05-08 10:27:48
【问题描述】:
目标: 根据当前日期输出给定时间范围内的 IW 标准周日期列表。
期望的输出:当前日期 = 2012 年 4 月 27 日,过去 7 个 IW 周日期的列表
【问题讨论】:
标签: sql oracle optimization
目标: 根据当前日期输出给定时间范围内的 IW 标准周日期列表。
期望的输出:当前日期 = 2012 年 4 月 27 日,过去 7 个 IW 周日期的列表
【问题讨论】:
标签: sql oracle optimization
试试这个:
SELECT TRUNC(SYSDATE - (LEVEL * 7), 'IW') TheDate
FROM dual
CONNECT BY LEVEL <= 7
【讨论】:
目前我正在使用此代码生成列表。我很好奇是否有更好的解决方案。但想为可能正在寻找的任何人提供此解决方案。
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');
当前输出:
【讨论】: