Time snwoflake奇怪的日期问题,在自定义期间使用滚动季度

Time snwoflake奇怪的日期问题,在自定义期间使用滚动季度,time,snowflake-cloud-data-platform,rolling-computation,dateadd,quarter,Time,Snowflake Cloud Data Platform,Rolling Computation,Dateadd,Quarter,我无法使用自定义期间表计算滚动季度: 时期 2017-06-01 2020-12-01 2020-11-01 注意 DATEADD(QUARTER, -<value>, <date> ) 正在重试2020-10-01 00:00:00.000 如果目标是返回前几个季度上个月的第一天(例如,周期=2020-04-01,即Q-1=2020-03-01,Q-2=2019-12-01,Q-3=2019-09-01): 选择 DATEADD(月份,-1,DATEADD(季度,1

我无法使用自定义期间表计算滚动季度:

时期 2017-06-01 2020-12-01 2020-11-01 注意

DATEADD(QUARTER, -<value>, <date> )
正在重试
2020-10-01 00:00:00.000

如果目标是返回前几个季度上个月的第一天(例如,周期=2020-04-01,即Q-1=2020-03-01,Q-2=2019-12-01,Q-3=2019-09-01):

选择
DATEADD(月份,-1,DATEADD(季度,1
,日期(季度),日期(季度,-1)
)
)作为“Q-1”,
DATEADD(月份,-1,DATEADD(季度,1
,日期(季度),日期(季度,-2)
)
)作为“Q-2”,
DATEADD(月份,-1,DATEADD(季度,1
,日期(季度),日期(季度,-3)
)
)作为“Q-3”
;

Hello@Francesco,这似乎不适用于此示例:
SELECT DATE_TRUNC('QUARTER',DATEADD(QUARTER,-1,'2021-04-29')我可以使用以下公式来解决Q-1的问题:
DATE\u TRUNC('MONTH',DATEADD('DAY',-1,DATE\u TRUNC('quarty','Period'))作为“Period Q1”
Hi@Jonito从这个问题中不清楚您的期望是什么。我认为这可能有助于显示“Q-1周期”的预期值,而不是您的查询返回的值。我需要找到前几个季度上个月的第一天。如果周期=2020-04-01,我需要找到Q-1=2020-03-01,Q-2=2019-12-01,Q-3=2019-09-01。好的,我已经添加了完整回答问题所需的最后一段代码。
DATEADD(MONTH, -<value>, <date> )
DATE_TRUNC('QUARTER', <date> )
SELECT DATE_TRUNC('QUARTER', DATEADD(QUARTER, -1, '2021-03-29'));
SELECT 
    DATEADD(MONTH, -1, DATEADD(QUARTER, 1
                                , DATE_TRUNC('QUARTER', DATEADD(QUARTER, -1, <date>))
                                )
                   ) AS "Q-1",
    DATEADD(MONTH, -1, DATEADD(QUARTER, 1
                                , DATE_TRUNC('QUARTER', DATEADD(QUARTER, -2, <date>))
                                )
                   ) AS "Q-2",
    DATEADD(MONTH, -1, DATEADD(QUARTER, 1
                                , DATE_TRUNC('QUARTER', DATEADD(QUARTER, -3, <date>))
                                )
                   ) AS "Q-3"
;