在BigQuery中将TIMESTAMP转为TIME并计算TIME_DIFF的方法
BigQuery 时间格式转换及时长计算解决方案
直接使用BigQuery内置的时间函数就能实现需求,无需字符串截取,完整查询语句如下:
SELECT TIME(started_at) AS started_at, TIME(ended_at) AS ended_at, TIME_SECONDS(TIMESTAMP_DIFF(ended_at, started_at, SECOND)) AS trip_duration FROM your_table_name -- 替换为你的实际表名
关键函数说明
- TIMESTAMP转TIME格式:
TIME(timestamp_column)函数会直接提取TIMESTAMP中的时间部分,转换为标准的TIME类型(HH:MM:SS格式),自动适配时区(示例中UTC时区的时间会正确提取本地时间部分)。 - 生成格式化时长:先通过
TIMESTAMP_DIFF(ended_at, started_at, SECOND)计算两个时间戳的秒数差,再用TIME_SECONDS(seconds)函数将秒数转换为补零的TIME格式时长,得到00:06:52这类规范结果。
执行后预期结果
| started_at | ended_at | trip_duration |
|---|---|---|
| 16:48:18 | 16:55:10 | 00:06:52 |
内容的提问来源于stack exchange,提问作者mosoho
相关产品推荐
相关产品推荐

