【问题标题】:Retrieve data based on current ISO week and backwards根据当前 ISO 周和向后检索数据
【发布时间】:2015-02-26 08:09:03
【问题描述】:

我必须处理每周(ISO 周)检索和分组的数据,并且我的数据库是每天构建的(字段:DATE)。我需要写下一个滚动的代码,以便给定当前日期,它也计算前 3 周的星期和检索数据。

所以我写在 WHERE 子句中:

TO_DATE(TO_CHAR(DATE, 'YYYYWW')) BETWEEN TO_DATE(TO_CHAR(TO_DATE(running_date, 'YYYYMMDD'), 'YYYYWW'), 'YYYYWW')-3 AND TO_DATE(TO_CHAR(TO_DATE(running_date, 'YYYYMMDD'), 'YYYYWW'), 'YYYYWW')

但它似乎不起作用。 关于如何处理问题的任何建议?

非常感谢!

【问题讨论】:

    标签: oracle date oracle11g week-number


    【解决方案1】:

    如果您想恢复前 3 周,则必须减去 21 天。如果你减去 3,那么你只收到最后三天。

    【讨论】:

      【解决方案2】:

      您需要使用“IW”而不是“WW”作为 ISO 周的格式掩码。来自 Oracle 文档:

      IW = 基于 ISO 标准的一年中的第几周(1-52 或 1-53)。

      WW = 一年中的第几周 (1-53),其中第 1 周从一年的第一天开始,并且 一直持续到年初七。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-02
        • 2021-07-22
        • 2012-07-26
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多