You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中合并两个30分钟间隔的时间戳序列

生成间隔30分钟的时间戳区间列(BigQuery)

方法一:直接生成起始时间,计算结束时间

无需单独生成两个数组,直接生成起始时间序列后,通过TIMESTAMP_ADD计算对应的结束时间,确保每一行的起始、结束时间严格对应,代码更简洁高效:

SELECT
  start_times AS interval_start,
  TIMESTAMP_ADD(start_times, INTERVAL 30 MINUTE) AS interval_end
FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2020-01-01', '2021-01-01', INTERVAL 30 MINUTE)) start_times
-- 若需和示例一致的倒序排列,添加以下语句
ORDER BY interval_start DESC

方法二:关联两个预生成的时间数组

如果坚持使用你已有的两个时间序列生成逻辑,可以通过OFFSET()函数匹配两个数组的索引位置,保证时间对应:

WITH start_times AS (
  SELECT 
    time,
    OFFSET() AS idx
  FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2020-01-01', '2021-01-01', INTERVAL 30 MINUTE)) AS time
),
end_times AS (
  SELECT 
    time,
    OFFSET() AS idx
  FROM UNNEST(GENERATE_TIMESTAMP_ARRAY(TIMESTAMP_ADD('2020-01-01', INTERVAL 30 MINUTE), '2021-01-01', INTERVAL 30 MINUTE)) AS time
)
SELECT
  s.time AS interval_start,
  e.time AS interval_end
FROM start_times s
INNER JOIN end_times e ON s.idx = e.idx
-- 需倒序则添加
ORDER BY s.time DESC

注:方法一优先推荐,避免生成两个数组的冗余操作,同时杜绝索引不匹配的潜在问题。

内容的提问来源于stack exchange,提问作者tuemar29

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:25:14