全部,我有一个名为duration的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(来自Akshay Hegde)
选择名称,SEC_TO_TIME(SUM(time_to_sec(duration))) 从持续时间 按名称分组;
在不到24小时的总持续时间内工作正常(即杰克的总持续时间为04:28:37,Stacy的总持续时间为22:56:34),但持续时间超过24小时则无效。
可悲的是,MySQL Workbench中的sql工作得很好(即使是300小时但不在java中,其中结果是“时间格式不正确”300列等)。
我相信我需要将持续时间作为一个角色,然后以某种方式总结。
任何帮助表示赞赏。
答案 0 :(得分: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;