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

如何在BigQuery中计算INTERVAL类型的总分钟数?

在BigQuery中计算时间间隔的总分钟数

情况1:直接基于原始TIMESTAMP字段计算

如果ended_at和created_at都是TIMESTAMP类型,无需先生成间隔字符串,直接用TIMESTAMP_DIFF函数一步算出总分钟数:

SELECT TIMESTAMP_DIFF(ended_at, created_at, MINUTE) AS total_minutes
FROM your_table;

该函数会自动将两个时间戳的所有时间差(年、月、日、时、分等)转换为总分钟数,完全覆盖你的需求场景。

情况2:基于已有的间隔字符串计算

如果已经得到了类似0-0 0 1:8:23.810192的间隔字符串(假设字段名为interval_str),可以通过正则提取核心时间分量计算:

SELECT
  SAFE_CAST(REGEXP_EXTRACT(interval_str, r' (\d+):') AS INT64) * 60 +
  SAFE_CAST(REGEXP_EXTRACT(interval_str, r':(\d+):') AS INT64) AS total_minutes
FROM your_table;
  • 正则r' (\d+):'提取小时部分(空格后到第一个冒号的数字)
  • 正则r':(\d+):'提取分钟部分(两个冒号之间的数字)
  • 按小时*60 + 分钟计算总分钟数,对应例子中的1*60+8=68,完全匹配预期结果。

如果需要包含秒的小数部分(比如把23.81秒折算为分钟),可以补充秒的计算逻辑:

SELECT
  SAFE_CAST(REGEXP_EXTRACT(interval_str, r' (\d+):') AS INT64) * 60 +
  SAFE_CAST(REGEXP_EXTRACT(interval_str, r':(\d+):') AS INT64) +
  SAFE_CAST(REGEXP_EXTRACT(interval_str, r':(\d+\.\d+)') AS FLOAT64) / 60 AS total_minutes
FROM your_table;

内容的提问来源于stack exchange,提问作者y.selivonchyk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:10:00