Mysql查询时间字段之间的差异有24小时

时间:2018-03-12 11:21:21

标签: mysql sql doctrine-orm

如何检查两个时间字段之间的时差,有24小时

考虑我的表" tb1",其中包含以下字段id,startTime,endTime

我们需要找出(startTime,endTime)之间的时差总和有24小时,加上数字min作为总记录。这意味着如果总差14.44分钟。总计数记录为4,我们需要在总小时内加4分钟

以下查询我累了:

示例数据

Select id,StartTime, EndTime from tablename;
+----+-----------+----------+
| id | StartTime | EndTime  |
+----+-----------+----------+
| 40 | 00:00:00  | 02:59:00 |
| 41 | 04:00:00  | 05:59:00 |
| 42 | 06:00:00  | 13:29:00 |
| 43 | 15:00:00  | 18:29:00 |
+----+-----------+----------+

Select Sum(TIMESTAMPDIFF(EndTime, StartTime)) + 4 mintues from tablename;

期望的输出:

12(in hours)

提前致谢

2 个答案:

答案 0 :(得分:1)

假设您始终将记录数添加为分钟

SELECT SEC_TO_TIME((SUM(TIMESTAMPDIFF(MINUTE,StartTime,EndTime))+ COUNT(*))* 60) FROM tablename;

根据您的数据,这将返回H:M:S

16时00分00秒

http://sqlfiddle.com/#!9/953c0c/21

答案 1 :(得分:0)

SELECT round(sum((time_to_sec(timediff(EndTime,StartTime))/3600)+(4/60))) 
FROM TABLE 
limit 1;