在 BigQuery 中我想
- 将 TIMESTAMP (YYYY-MM-DD HH:MM:SS) 格式转换为 TIME (HH:MM:SS)
- 计算 2 个新转换的 TIME 点之间的 TIME_DIFF,以获得持续时间
我现在在哪里
SELECT
started_at,
ended_at,
(ended_at - started_at) AS trip_duration,
TIMESTAMP_DIFF(ended_at, started_at, SECOND) AS trip_duration_seconds
期望的结果是这样的
我现在可能可以将其切碎为 STRING,然后再恢复为 TIME 格式。但一定有一个非常简单的解决方案!
最佳答案
您可以考虑以下。
WITH sample_table AS (
SELECT TIMESTAMP '2023-02-12 16:48:18 UTC' started_at,
TIMESTAMP '2023-02-12 16:55:10 UTC' ended_at
)
SELECT EXTRACT(TIME FROM started_at) AS started_at,
EXTRACT(TIME FROM ended_at) AS ended_at,
TIME_ADD(
TIME '0:0:0',
INTERVAL TIMESTAMP_DIFF(ended_at, started_at, SECOND) SECOND
) AS trip_duration
FROM sample_table
-- query result
+------------+----------+---------------+
| started_at | ended_at | trip_duration |
+------------+----------+---------------+
| 16:48:18 | 16:55:10 | 00:06:52 |
+------------+----------+---------------+
关于sql - BigQuery - 将 TIMESTAMP 转换为 HH :MM:SS and then identify TIME_DIFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75956300/