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

如何在BigQuery中计算Datetime时间间隔并新增时长列

在BigQuery中计算Datetime时间间隔并新增DURATION列

核心解决方案:正确使用DATETIME_DIFF()函数

你之前用DATETIME_DIFF()失败大概率是参数顺序搞反了——BigQuery里这个函数的参数顺序是结束时间在前,开始时间在后,最后指定时间单位。

针对你的表格,运行以下SQL就能新增DURATION列(以分钟为单位,可按需修改时间单位):

SELECT
  started_at,
  ended_at,
  DATETIME_DIFF(ended_at, started_at, MINUTE) AS DURATION
FROM
  `你的项目名.你的数据集名.你的表名`;

关键注意事项

  • 参数顺序:DATETIME_DIFF(end_datetime, start_datetime, unit),颠倒顺序会得到负数结果
  • 支持的时间单位:SECOND/MINUTE/HOUR/DAY/WEEK/MONTH/QUARTER/YEAR,按需替换即可
  • 如果started_at和ended_at是TIMESTAMP类型而非DATETIME,改用TIMESTAMP_DIFF()函数,用法完全一致

进阶:格式化时长为HH:MM:SS格式

要是需要更易读的时分秒格式,可结合FORMAT_TIMESTAMP()转换总秒数:

SELECT
  started_at,
  ended_at,
  DATETIME_DIFF(ended_at, started_at, MINUTE) AS duration_minutes,
  FORMAT_TIMESTAMP('%H:%M:%S', TIMESTAMP_ADD(TIMESTAMP('1970-01-01'), INTERVAL DATETIME_DIFF(ended_at, started_at, SECOND) SECOND)) AS duration_formatted
FROM
  `你的项目名.你的数据集名.你的表名`;

你的示例数据运行结果

started_atended_atDURATIONduration_formatted
2020-04-26 17:45:00 UTC2020-04-26 18:12:00 UTC2700:27:00
2020-04-17 17:08:00 UTC2020-04-17 17:17:00 UTC900:09:00
2020-04-01 17:54:00 UTC2020-04-01 18:08:00 UTC1400:14:00

内容的提问来源于stack exchange,提问作者Sandro Lélis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:55:16