【问题标题】:The date functions in snowflake doesn't seem to work as expected雪花中的日期函数似乎没有按预期工作
【发布时间】:2019-11-17 18:01:07
【问题描述】:

我不明白为什么

SELECT YEAROFWEEK('2017-01-01T00:00:00.000+00:00'::timestamp) 返回“2016”

SELECT WEEK('2017-01-01T00:00:00.000+00:00'::timestamp) 返回“52”

谁能帮我理解一下?

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    这是决定其工作方式的一年中一周政策的文档 - https://docs.snowflake.net/manuals/sql-reference/parameters.html#week-of-year-policy

    一个例子可能会有所帮助。 week_of_year_policy 在新创建的帐户上默认设置为 0。

    
    select YEAROFWEEK('2017-01-01T00:00:00.000+00:00'::timestamp) as yow
         , WEEK('2017-01-01T00:00:00.000+00:00'::timestamp) as w;
    
    +------+----+
    |  YOW |  W |
    +------+----+
    | 2016 | 52 |
    +------+----+
    
    alter session set week_of_year_policy = 1;
    
    select YEAROFWEEK('2017-01-01T00:00:00.000+00:00'::timestamp) as yow
         , WEEK('2017-01-01T00:00:00.000+00:00'::timestamp) as w;
    
    +------+---+
    |  YOW | W |
    +------+---+
    | 2017 | 1 |
    +------+---+
    

    【讨论】:

    • 您的回答似乎向 OP 展示了如何获得他需要的东西,但如果您能解释原因,或许对我更有帮助。例如。什么是 week_of_year_policy?或链接到文档。
    • OP 已经链接到他们更新中的文档,所以我没有重复,但感谢这将是一个更完整的答案。
    【解决方案2】:

    【讨论】:

    • 您想“为自己/他人”解释一下哪些参数在起作用,否则这个“问题”和“答案”没有什么价值。
    猜你喜欢
    • 2016-10-10
    • 2020-09-15
    • 2016-01-24
    • 1970-01-01
    • 2022-12-17
    • 2021-06-07
    • 2013-02-10
    • 2019-04-24
    • 1970-01-01
    相关资源
    最近更新 更多