SQL BigQuery 中的修剪时间

Trimming time in SQL BigQuery

我目前正在通过 Google 在 Coursera 上的数据分析认证学习 SQL BigQuery,我只是对 TRIM() 函数有些困惑。所以对于初学者来说,这是我想要使用 TRIM() 的数据的屏幕截图。 enter image description here

SELECT ride_id, rideable_type, started_at, ended_at,
(SELECT (started_at - ended_at)) AS duration, 
EXTRACT(time from started_at) AS start_time,
EXTRACT(time from ended_at) AS end_time,
EXTRACT(DAYOFWEEK from started_at) AS day_of_the_week
FROM `first-project-325905.bike_2020_april.july_bike`
WHERE member_casual = 'member'

^ 这是我 运行 得到我链接的第一张图片的代码,但我想使用 TRIM 将结果 0-0 0 -0:3:56 变成 0:3:56。我试过使用 RIGHT() 但它不能应用于所有字段,因为最近几天有一些旅行(所以我不能只使用 RIGHT(duration, 7) 因为它会从更长的旅行中裁剪数字。)

我尝试了 运行 这段代码,我将持续时间转换为字符串,然后使用 TRIM:

SELECT ride_id, rideable_type, started_at, ended_at,
(SELECT TRIM(CAST((started_at - ended_at)AS STRING), "0-0 0 -0:")) AS duration, 
EXTRACT(time from started_at) AS start_time,
EXTRACT(time from ended_at) AS end_time,
EXTRACT(DAYOFWEEK from started_at) AS day_of_the_week
FROM `first-project-325905.bike_2020_april.july_bike`
 WHERE member_casual = 'member'

持续时间的结果如下所示:3:56 enter image description here

所以我的问题是,有没有办法使用 TRIM() 使持续时间看起来像 0:3:56 而不是 3:56?我一直在第二个代码块的第二行尝试 "0-0 0 -0:" 的其他组合,但我似乎无法正确组合。作为参考,我正在尝试找到平均行程持续时间和 maximum/minimum,所以我知道在 TRIM() 正确后我必须再次投射数据。

如有任何帮助,我们将不胜感激!

请使用格式:

SELECT ride_id, rideable_type, started_at, ended_at,
(
SELECT format((started_at - ended_at),'HH:mm:ss') AS duration, 
EXTRACT(time from started_at) AS start_time,
EXTRACT(time from ended_at) AS end_time,
EXTRACT(DAYOFWEEK from started_at) AS day_of_the_week
FROM `first-project-325905.bike_2020_april.july_bike`
 WHERE member_casual = 'member'