问题描述
我是 SNowflake 的新手,我的经理希望我在当月的 5 号时检索上个月的数据。例如,如果今天是 4 月 5 日,则要求雪花检索过去一个月的数据,即从 2021 年 3 月 1 日到 2021 年 3 月 31 日,其他月份均类似。
他之所以要在下个月的5号更新上个月的数据,是因为那天是我们拿到数据的日子。
我尝试使用 DATEADD
函数,但它比仅使用此函数要复杂。
提前致谢!
PS:每个月的数据都有相同的日期。例如:日期就像 - 4 月 20 日将在数据库中存储为“2021-4-01” - 4 月 25 日的日期将存储为“2021-4-01”。
数据库中的日期不会改变,只会改变月份和年份。
解决方法
关于可以通过 DATE_TRUNC 和 DATEADD 完成的上个月窗口
__ARM_FEATURE_FP16_VECTOR_ARITHMETIC
给出:
select
current_date as cd,date_trunc('month',cd) as end_range,dateadd('month',-1,end_range) as start_range
;
问题的另一半只在5号做,如果你有每天运行的任务等可以通过
解决CD END_RANGE START_RANGE
2021-04-21 2021-04-01 2021-03-01
或者如果是内联方式
,day(current_date) = 5 as is_the_fifth