我有mysql列时间(3),它存储了很好的时间值.. 但后来我想总结两次它转换成糟糕的时间格式;
我有两条记录:
b
所以实际上我应该得到:id | time
---|-----------
1 | 00:00:15.490
2 | 00:02:14.900
但我得到00:02:30.390
无论如何都要从Mysql得到正确的答案? 附:我使用PHP的功能,但不想使用它,除非有其他方法。 需要与MILLISECONDS相加时间
目前我正在使用查询230.390
答案 0 :(得分:4)
如果你的表定义是这样的:
create table test (
id integer,
`time` time(3) -- important to specify precision
);
你可以这样做:
select time(sum(`time`))
from test;
注意:需要mysql 5.6 +
修改
实际上,time
是使用错误的功能,因为它没有很多智能。
改为使用sec_to_time
,即:
select sec_to_time(sum(`time`))
from test;
修改 time
提取时间值,sec_to_time
计算时间值 - 即time(70)
返回NULL,因为没有有效时间有70秒, sec_to_time
将为同一输入正确返回'00:01:10'
的位置
原来我还是错了。让我们尝试将毫秒分别处理到剩下的时间:
select sec_to_time(sum(time_to_sec(`time`)) + sum(microsecond(`time`))/1000000)
from test;
答案 1 :(得分:2)
使用时间功能包裹输出的结果。所以:
time(sum(`time`))
其中时间是时间函数,时间是'是你的总和。