2017-09-05 84 views
-1

所有,我有一个MySQL表命名为持续时间包含姓名和总持续时间的不同地点走访了一天。我需要总计时间并为每个人展示他们(以小时,分钟,秒格式)。我正在努力使用正确的SQL代码(不要使用存储过程)。持续时间列是TIME数据类型。铸造和总结时间间隔值

Name Duration 

Fred 04:00:20 
John 12:39:10 
Jack 03:59:20 
Stacy 19:17:34 
Stacy 03:39:00 
John 04:20:30 
Jack 00:29:17 
John 03:23:50 
Fred 300:17:29 

我已经使用以下SQL(从阿克沙伊赫格德)

选择名称,SEC_TO_TIME(SUM(TIME_TO_SEC(持续时间))) 从持续时间 组按名称;

的正常工作总的持续时间不超过24小时(即杰克的总持续时间4时28分37秒,Stacy的总时间22时56分34秒),但未能为持续时间大于24小时。

可悲的是SQL在MySQL Workbench中(即使有300个小时,但没有在Java其结果为“坏格式的时间了300列等)的正常工作。

我相信我需要转换时间为焦炭然后以某种方式总结上。

任何援助表示赞赏。

+0

这听起来像是你使用的Java MySQL API的一个问题,它不能理解大于24小时的时间。 – Barmar

回答

0

由于您的Java API不明白倍大于24小时,尝试转换为字符串。

select name, CAST(SEC_TO_TIME(SUM(time_to_sec(duration))) AS CHAR) AS total_time 
from duration 
group by name; 
+0

谢谢Barmar,工作完美。 – Active