获得两次正确的时差

时间:2014-04-09 05:47:52

标签: mysql

我要求两次之间的时差(24小时格式)。所有找到的差异和减去每周分配的小时数。

用于查找两次(start_time和end_time)之间的差异。我用过mysql查询:

 SELECT es.empid,es.shiftid, es.start_time,es.end_time,TIMEDIFF(es.end_time, es.start_time) FROM 
`empschedule` AS es INNER JOIN `employee` AS e ON  es.`empId`=e.`empID`

查询结果:

enter image description here

对于前两个记录,我发现了正确的差异但是对于最后一个记录我得到了错误的差异。请帮助我如何得到正确的差异。

2 个答案:

答案 0 :(得分:3)

我想OP寻找:

select
    es.empid,
    es.shiftid,
    es.start_time,
    es.end_time,
    case when (es.end_time > es.start_time) then
        timediff(es.end_time, es.start_time)
    else
        ADDTIME(timediff('24:00:00', es.start_time), es.end_time)
    end
FROM `empschedule` AS es
INNER JOIN `employee` AS e
ON  es.`empId`=e.`empID`

答案 1 :(得分:0)

尝试使用ABS()函数

SELECT es.empid,es.shiftid, es.start_time,es.end_time,ABS(TIMEDIFF(es.end_time, es.start_time)) FROM 
`empschedule` AS es INNER JOIN `employee` AS e ON  es.`empId`=e.`empID`