我想配置查询所使用的时间间隔,但不知道如何将DAY、WEEK、MONTH、QUARTER、YEAR等声明为变量。
DECLARE interval ???; -- What datatype is `DAY`, `MONTH` etc?
SET interval = MONTH;如果相关,我的查询将执行如下操作:
WITH dates AS (
SELECT * FROM UNNEST(
GENERATE_DATE_ARRAY(
DATE_TRUNC('2019-12-11', MONTH),
DATE_TRUNC('2020-02-19', MONTH),
INTERVAL 1 MONTH
)
) as date
)
SELECT * FROM dates;例如,我希望MONTH被换成WEEK或DAY。
发布于 2020-02-11 19:39:49
不能将变量声明为变量,但这是我使用的最佳技巧:
DECLARE var_date_option STRING DEFAULT 'MONTH';然后用作为
CASE var_date_option
WHEN 'DAY' THEN GENERATE_DATE_ARRAY(t.min_date,t.max_date, INTERVAL 1 DAY)
WHEN 'WEEK' THEN GENERATE_DATE_ARRAY(t.min_date,t.max_date, INTERVAL 1 WEEK)
WHEN 'MONTH' THEN GENERATE_DATE_ARRAY(t.min_date,t.max_date, INTERVAL 1 MONTH)
ENDhttps://stackoverflow.com/questions/60176167
复制相似问题