我正在尝试为批处理生成日期列表。 我想创建相隔一个月、一年的日期。 所以,我的最后加载日期是 2018 年 3 月 24 日,所以我想创建一个包含 2018 年 4 月 23 日、2018 年 5 月 23 日等一年的日期列表。 我有一堆桌子,每张桌子都有可能不同的低日期。
我尝试过进行递归,但雪花似乎没有最大递归选项,所以我无法让它正常工作:
提前感谢您的帮助
WITH RECURSIVE dates_cte AS (
-- start date
SELECT SF_LOWDATE ::DATE as dt
,replace(replace(object_name, '[',''), ']','') AS object_name
FROM table_sf_lowdates
UNION ALL
SELECT DATEADD('month',1,dt) as dt, object_name
FROM dates_cte
-- dont go past a year
WHERE dt < DATEADD('year', 1, dt)
)
SELECT * FROM dates_cte order by dt;
这应该给你你想要的:
select add_months('2018-03-24',seq4()+1)::date
FROM TABLE(GENERATOR(ROWCOUNT => 12))
;