表格中的数据是这样的
ds_start_time -> 09:00:00 , ds_end_time-> 09:30:00
ds_start_time -> 09:00:00 , ds_end_time-> 10:30:00
ds_start_time -> 10:00:00 , ds_end_time-> 10:30:00
ds_start_time -> 09:30:00 , ds_end_time-> 10:30:00
我想要日期和总和之间的差异 因为我把它放在查询中
SELECT SUM(TIMEDIFF(ds_end_time,ds_start_time))
FROM www
WHERE abc='123'........
但最后我得到2058800.000000。从这个我怎样才能得到总分钟和秒。 或任何其他方法.Plz建议。
答案 0 :(得分:1)
如果您知道如何在MySQL中轻松完成此操作:
SELECT SEC_TO_TIME(SUM
(TIME_TO_SEC(ds_end_time) - TIME_TO_SEC(ds_start_time))
) AS timediff
FROM www
WHERE abc = '123'
请注意,如果有很多行有abc = '123'
,那么您可能会获得双重计数,因为您想要尝试迁移:
SELECT SEC_TO_TIME(
(MAX(TIME_TO_SEC(ds_end_time)) - MIN(TIME_TO_SEC(ds_start_time)))
) AS timediff
FROM www
WHERE abc = '123'
答案 1 :(得分:0)
使用PHP而不是SQL会更容易。考虑将实际时间排除,然后循环遍历它们。
$total = 0;
foreach ($results as $val) {
$total += strtotime($val['ds_end_time']) - strtotime($val['ds_start_time']);
}
然后使用$ total,你有足够的毫秒来做你想要的事情。