BigQuery中如何仅通过起止日期生成指定范围的日期数组
BigQuery生成指定范围日期数组的方法
你可以直接用BigQuery内置的GENERATE_DATE_ARRAY函数实现需求,不需要手动拼接日期。
基础用法
GENERATE_DATE_ARRAY(起始日期, 结束日期, [可选间隔步长])
- 函数默认间隔步长为1天,刚好匹配生成连续日期的需求
- 结束日期会被包含在最终返回的数组中
匹配示例效果的代码
你提供的手动拼接日期数组的示例,等价于下面这行代码,返回结果完全一致:
GENERATE_DATE_ARRAY(CURRENT_DATE(), DATE_ADD(CURRENT_DATE(), INTERVAL 5 DAY))
更多使用示例
- 生成2024年1月整月的连续日期数组
SELECT GENERATE_DATE_ARRAY('2024-01-01', '2024-01-31') AS jan_dates
- 按周为间隔生成2024年全年的周一日期
SELECT GENERATE_DATE_ARRAY('2024-01-01', '2024-12-31', INTERVAL 1 WEEK) AS week_mondays
- 将生成的日期数组展开为单行单列的日期列表
SELECT single_date FROM UNNEST(GENERATE_DATE_ARRAY('2024-01-01', '2024-01-05')) AS single_date
内容的提问来源于stack exchange,提问作者Timo Rietveld
相关产品推荐
相关产品推荐

