首页 > 解决方案 > 雪花中的日历日期列?

问题描述

我有一张雪花表,看起来像这样:

starting_date   fiscal_week   calendar_week
2020-12-31      53            53
2021-01-01      53            53
2021-01-08      53            01

并查找fiscal_week(格式为 YYYYMMDD)。会计周应遵循一年中的 1-53 周数。calendar_week 不一定需要从星期日开始,它只需要从一年的第一天开始,即第 01 周。calendar_weekstarting_date

因此,我希望它看起来像这样:

starting_date   fiscal_week   calendar_week
2020-12-31      53            53
2021-01-01      53            01
2021-01-08      53            02

我试过使用下面的 weekiso 和 week 函数,但仍然没有得到想要的结果。结果仍然反映了第一个表中显示的内容。

select *, weekiso (starting_date) as calendar_week from my table

在雪花数据库中是否有特定的方法可以做到这一点?我假设这就是我的问题的来源,但我不确定。

我是使用雪花的新手,所以任何帮助将不胜感激!

标签: sqlsnowflake-cloud-data-platformsnowflake-sql

解决方案


您可以提取一年中的几天并对其进行一些算术运算。不过,在会话级别更改一年中的一周政策可能更容易

select floor((dayofyear(starting_date)+6)/7)

推荐阅读