我要求两次之间的时差(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`
查询结果:
对于前两个记录,我发现了正确的差异但是对于最后一个记录我得到了错误的差异。请帮助我如何得到正确的差异。
答案 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`