【问题标题】:Oracle week of the year一年中的甲骨文周
【发布时间】:2014-01-08 17:25:22
【问题描述】:

为什么 2013 年 12 月 16 日和 2013 年 12 月 17 日在不同的星期?

alter session set NLS_TERRITORY=AMERICA;
select to_char(to_date('12-16-2013', 'mm-dd-yyyy'),'ww'),to_char(to_date('12-17-2013', 'mm-dd-yyyy'),'ww') from dual

【问题讨论】:

    标签: oracle date


    【解决方案1】:

    如果您查看格式化模型documentation,它会指出:

    • WW - 一年中的第几周 (1-53),其中第 1 周从 第一天开始 一年,一直持续到一年的第七天。
    • W - 每月的第几周 (1-5),其中第 1 周从 1 月的第一天开始 月和七日结束。

    2013 年 1 月 1 日从去年的一个星期二开始,而不是一周的第一天。因此,在您的测试用例中,2013 年 12 月 17 日也是星期二,并且甲骨文计算出新的“周”。当然,不明显。

    【讨论】:

    • @user3061754 还有第三个选项:IW - “ISO 周”,它根据 ISO 标准计算周数。
    • 哇。这就是我想要的。谢谢 a_horse_with_no_name
    • @a_horse_with_no_name 请写下您的评论作为答案,我想很多人会选择您的答案作为他们正在寻找的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多