我有一个名为test_duration bigint(12)的数据列。我以秒为单位将时间存储到数据库中。现在,当我从表中获取记录时,我希望将时间转换为 HH:MM:SS 格式。我应该如何实现这一目标?提前致谢。
问问题
26249 次
4 回答
43
您可以使用MySQL函数SEC_TO_TIME()。
例子:
SELECT SEC_TO_TIME(2378);
输出是:
00:39:38
所以在你的情况下:
SELECT SEC_TO_TIME(test_duration) as `Time` FORM YOUR_TABLE;
于 2013-09-20T07:48:44.587 回答
3
您是否将时间存储在 Unixtime(Unix 秒?)中。如果是这样,请使用:
FROM_UNIXTIME(unix_timestamp, '%h:%i:%s')
于 2013-09-20T07:48:07.483 回答
2
有一个 MYSQL 函数可以将秒转换为“HH:MM:SS”格式:
SEC_TO_TIME(seconds)
例子:
SELECT SEC_TO_TIME(3661);
将输出:
01:01:01
问候
于 2013-09-20T07:55:44.620 回答
0
您可以从函数 SEC_TO_TIME 获得的最大值是 838:59:59
如果你有更大的数字,你可以使用这个代码:
SELECT DAY, Floor((SUM(DAY) / (60*60))) AS Hours,
Floor(MOD(SUM(DAY), (60*60)) / 60) AS Minutes,
Floor(MOD(SUM(DAY), (60))) AS Secs,
CONCAT(
Floor((SUM(DAY) / (60*60))), ":",
Floor(MOD(SUM(DAY), (60*60)) / 60), ":",
Floor(MOD(SUM(DAY), (60)))
) AS Time
FROM (SELECT 5328089 as DAY) a
于 2019-11-20T17:43:01.700 回答