Snowflake环境下如何实现DAY函数反向计算获取月份逆序日
Snowflake 计算当月逆序日实现方案
逆序日的计算逻辑为:当月总天数 - 当前日期的月内日序号 + 1,你可以通过Snowflake内置的LAST_DAY()函数获取当前日期所在月的最后一天,再提取该日期的日序号即可得到当月总天数,无需手动判断不同月份的天数差异。
示例代码
select '2016-01-02T23:39:20.123-07:00'::timestamp as tstamp, day(tstamp) as "DAY OF MONTH", day(last_day(tstamp)) - day(tstamp) + 1 as "REVERSE DAY OF MONTH";
运行结果
| TSTAMP | DAY OF MONTH | REVERSE DAY OF MONTH |
|---|---|---|
| 2016-01-02 23:39:20.123 | 2 | 30 |
补充说明
- 自动适配28/29天的2月、30天的小月、31天的大月所有场景
- 支持DATE、TIMESTAMP类型的日期字段直接输入使用
内容的提问来源于stack exchange,提问作者telarewa
相关产品推荐
相关产品推荐

