【问题标题】:Oracle generate list of IW week datesOracle 生成 IW 周日期列表
【发布时间】:2012-05-08 10:27:48
【问题描述】:

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

期望的输出:当前日期 = 2012 年 4 月 27 日,过去 7 个 IW 周日期的列表

【问题讨论】:

    标签: sql oracle optimization


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 谢谢!我知道会有一种简化且更好的方法来做到这一点。
    【解决方案2】:

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

    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');
    

    当前输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多