雪花中的日期函数似乎没有按预期工作
Posted
技术标签:
【中文标题】雪花中的日期函数似乎没有按预期工作【英文标题】: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”
谁能帮我理解一下?
【问题讨论】:
【参考方案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】:稍微深入一点,我从https://docs.snowflake.net/manuals/sql-reference/parameters.html#week-of-year-policy得到了答案
【讨论】:
您想“为自己/他人”解释一下哪些参数在起作用,否则这个“问题”和“答案”没有什么价值。以上是关于雪花中的日期函数似乎没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章