SQL 如何在 SQL 查询中将毫秒数从 table 转换为 HH:MM:SS?

SQL How to convert Milliseconds from a table to HH:MM:SS in SQL Query?

PHP 版本:7.3.6 使用 phpMyAdmin

我看过一些关于此的帖子,但我一直在努力寻找适合我的答案。我正在尝试让比赛结果时间显示在 HH:MM:SS 中,目前在 table

中以毫秒为单位
SELECT
MIN(Result.Time) AS MinTime, event_cat_id

FROM
Wp_wpa_result Result
INNER JOIN Wp_wpa_event Race ON Result.Event_id = Race.Id 
WHERE Race.Sub_type_id = 'R' AND Age_grade <> 'null' AND event_cat_id IN ( '30', '11', '12', '13', '14', '17', '20', '19', '15'  )
GROUP BY event_cat_id
)


SELECT  U.Display_name, EVC.Name AS EventDistance, EV.name AS RaceName, MinTime,  EV.Date, RE.Age_Grade AS AgeGrade, EV.Sub_type_id AS Terrain, EV.Date AS RaceDate
FROM CTE

INNER JOIN Wp_wpa_event_cat EVC ON EVC.id = CTE.event_cat_id  
INNER JOIN Wp_wpa_event EV ON EV.Event_cat_id = CTE.event_cat_id 
INNER JOIN Wp_wpa_result RE ON EV.id = RE.event_id AND CTE.MinTime = RE.Time
INNER JOIN wp_users U ON U.ID = RE.user_id
ORDER BY MinTime;

Display_name ||事件距离 ||种族名称 ||最短时间 ||日期 ||年龄等级 ||地形 ||比赛日期

戴夫博客 || 5k 沃登广场 5k || 1042000 || 2019/06/04 || 74.76 || R || 2019 年 6 月 4 日

不过应该是

戴夫博客 || 5k 沃登广场 5k || 00:17:14 || 2019/06/04 || 74.76 || R || 2019 年 6 月 4 日

谢谢, 亚当

您需要函数 sec_to_time():

sec_to_time(MinTime / 1000)

如果你想将结果格式化为 hh:mm:ss 那么也可以使用 time_format():

time_format(sec_to_time(MinTime / 1000), '%H %i %s')