铸造和求和持续时间值

时间:2017-09-05 15:11:26

标签: mysql

全部,我有一个名为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列等)。

我相信我需要将持续时间作为一个角色,然后以某种方式总结。

任何帮助表示赞赏。

1 个答案:

答案 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;