如何在sql中将hh:mm:ss转换为float


SELECT SUM(render) AS total FROM mytable

这是我的代码,用于获得所有渲染小时的总和。但结果是,例如,我有04:30:00和03:15:00,然后输出变成074520,但我希望它像7.75小时

在MySQL中有一种方法:

SELECT 
SUM(HOUR(render) * 60.0 + MINUTE(render)) / 60.0 AS TotalHours
FROM mytable

表达式HOUR(render) * 60.0 + MINUTE(render)time的值转换为分钟数,我们将其相加以获得总数。

如果需要,可以将SECOND()添加到公式中以获得更精确的答案。

如果您想在MySQL中对时间类型求和,请使用:

select sum(time_to_sec(render))
from mytable;

这将时间转换为秒值,并对值求和。然后,如果您想将其转换回另一种格式,请转换秒:

select sum(time_to_sec(render)) / (60 * 60) as decimal_hours,
sec_to_time(sum(time_to_sec(render))) as time_format

MySQL不直接求和时间值。它将把它们转换成HHMMSS形式的数字。所以,00:00:55就是55。如果将其添加到自身,则会得到110,这与00:01:50无关。

最新更新