You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake SQL如何将'YYYY WW'格式字符串转为对应周周一的日期

Snowflake SQL:将'YYYY WW'格式字符串转为当周周一日期

方法1:针对ISO周(周一为一周起始)

Snowflake支持直接解析ISO周格式的字符串,使用TO_DATE函数并指定格式符IYYY IW,会直接返回对应ISO周的周一日期:

SELECT TO_DATE(your_column_name, 'IYYY IW') AS week_monday
FROM your_table;

例如:TO_DATE('2023 W37', 'IYYY IW')会返回2023-09-11(2023年第37个ISO周的周一)。

方法2:针对美式周(周日为一周起始)

如果你的周定义以周日为起始,先通过TO_DATE('YYYY WW')解析出该周的周日,再调整到周一:

方式A:用DATEADD调整天数

SELECT DATEADD(DAY, -6, TO_DATE(your_column_name, 'YYYY WW')) AS week_monday
FROM your_table;

方式B:用DATE_TRUNC指定周起始

使用DATE_TRUNC的第三个参数指定周起始为周一(参数值1代表周一):

SELECT DATE_TRUNC('WEEK', TO_DATE(your_column_name, 'YYYY WW'), 1) AS week_monday
FROM your_table;

不推荐用substring的原因

手动拆分年份和周数后,需要自行处理周与日期的映射逻辑(比如跨年周、不同周定义的差异),容易出现计算错误,而内置日期函数已经封装了这些复杂逻辑,更准确可靠。

内容的提问来源于stack exchange,提问作者Michelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:55:01