在 Snowflake 中生成一年的每月日期列表

问题描述 投票:0回答:1

我正在尝试为批处理生成日期列表。 我想创建相隔一个月、一年的日期。 所以,我的最后加载日期是 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;
date recursion snowflake-cloud-data-platform
1个回答
0
投票

这应该给你你想要的:

select add_months('2018-03-24',seq4()+1)::date
FROM TABLE(GENERATOR(ROWCOUNT => 12))
;
© www.soinside.com 2019 - 2024. All rights reserved.