如何在BigQuery中生成近10天的分钟级时间范围?
在BigQuery生成近10天的分钟级时间范围
你可以用GENERATE_TIMESTAMP_RANGE函数替代生成日期范围的GENERATE_DATE_ARRAY,来生成分钟级的时间序列。以下是具体实现代码:
WITH CTE_MINUTE_RANGE AS ( SELECT timestamp FROM UNNEST(GENERATE_TIMESTAMP_RANGE( CURRENT_TIMESTAMP() - INTERVAL 10 DAY, -- 起始时间:当前时间往前推10天 CURRENT_TIMESTAMP(), -- 结束时间:当前时间 INTERVAL 1 MINUTE -- 时间间隔:1分钟 )) AS timestamp ) SELECT * FROM CTE_MINUTE_RANGE
可选调整方案
- 如果需要从近10天的0点整开始生成序列(比如当前日期是2024-05-20,就从2024-05-10 00:00:00开始),可以修改起始时间的计算方式:
WITH CTE_MINUTE_RANGE AS ( SELECT timestamp FROM UNNEST(GENERATE_TIMESTAMP_RANGE( TIMESTAMP_TRUNC(CURRENT_DATE() - INTERVAL 10 DAY, DAY), CURRENT_TIMESTAMP(), INTERVAL 1 MINUTE )) AS timestamp ) SELECT * FROM CTE_MINUTE_RANGE
- 若要生成固定天数的完整分钟序列(比如从近10天0点到今日0点),只需把结束时间改为
TIMESTAMP_TRUNC(CURRENT_DATE(), DAY)即可。
内容的提问来源于stack exchange,提问作者Mursil
相关产品推荐
相关产品推荐

