BigQuery动态日期实现:无需手动修改自动更新或每日递增
BigQuery 实现日期自动更新(无需手动修改)
针对无需手动修改日期、实现每日自动更新日期范围的需求,以下是具体解决方案:
关键修改点
将原代码中硬编码的日期字符串(如"2022-10-01"、"2022-10-12")替换为BigQuery内置的日期函数,自动计算目标日期。
常用场景方案
1. 每日自动处理前一天的数据
适合每日00:00后调度运行,获取前一天的完整数据:
-- 替换原硬编码的日期条件 AND call_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
CURRENT_DATE():返回当前时区的日期,可指定时区(如CURRENT_DATE('Asia/Shanghai'))DATE_SUB(..., INTERVAL 1 DAY):计算当前日期的前一天
2. 固定起始日+自动更新结束日到当前日期
保持起始日期不变,结束日期自动同步为当前日期:
AND (call_date >= "2022-10-01" AND call_date <= CURRENT_DATE())
3. 滑动日期窗口(如最近7天数据)
自动获取最近N天的动态数据范围:
AND call_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND call_date <= CURRENT_DATE()
完整修改代码示例(场景1:每日处理前一天数据)
WITH _0 AS ( SELECT * FROM employee_calldata ), _1 AS ( SELECT call_date AS __call_date__1, sub_queue AS __sub_queue__1, SUM(call_count) AS callstaken, mode AS __mode__1 FROM _0 AS _t WHERE call_type IS NOT NULL AND call_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AND sub_queue = "Customer_Complaints" GROUP BY __call_date__1, __sub_queue__1, __mode__1 ) SELECT * FROM _1
额外说明
若需要每日自动执行该查询,可配置BigQuery的计划查询功能,设置执行时间为每日00:00之后。
内容的提问来源于stack exchange,提问作者Rocking Raghav
相关产品推荐
相关产品推荐

