如何在Snowflake SQL中查询指定月份的第二个星期一
Snowflake SQL 查询指定月份第二个星期一的实现方法
核心逻辑
- 第一步:用
DATE_TRUNC函数截取目标日期对应的当月第一天 - 第二步:用
NEXT_DAY函数计算当月第一天之后(含当天)的第一个星期一 - 第三步:给第一个星期一加7天,即可得到当月第二个星期一
通用查询代码
-- 语句中的 :target_month 可替换为你要查询的任意月份的日期,例如'2021-09-01' SELECT DATEADD( 'day', 7, NEXT_DAY( DATE_TRUNC('MONTH', TO_DATE(:target_month, 'YYYY-MM-DD')), 'Monday' ) ) AS second_monday_of_month;
示例验证(2021年9月)
SELECT DATEADD( 'day', 7, NEXT_DAY( DATE_TRUNC('MONTH', TO_DATE('2021-09-01', 'YYYY-MM-DD')), 'Monday' ) ) AS second_monday_of_month;
返回结果为2021-09-13,与预期结果一致。
如果你需要查询其他星期X的对应日期,仅需要调整
NEXT_DAY的第二个参数为对应星期名称即可,例如要查第二个周二可替换为'Tuesday'。
内容的提问来源于stack exchange,提问作者reachbgk
相关产品推荐
相关产品推荐

