我不知道这个问题是否合适,但情况如下:
在我的mysql查询中,我得到了时差,并在同一部分下获得了每位员工的总和。
SUM(HOUR(TIMEDIFF(fDate, fDateOut))) AS timediff
现在,在获得结果之后,我只需要从结果中获得8小时,并将多余的时间放在表中的另一列中,其中:
example:
fDate fDateOut
2013-08-01 07:00 2013-08-01 18:00
timediff = 11 hours // <------ now I need to get only 8 hours from this result and put the excess in another column:
因此:
timediff = 8 hours
excesstime = 3 hours
我该如何在mysql中进行计算?请帮忙。谢谢。
最佳答案
这是一个相当粗糙的解决方案,我相信可以对其进行优化以适合您的查询,但是它表明了这个想法。
SELECT *, LEAST(8,timediff) AS timediff, GREATEST(0,timediff-8) AS excess
FROM (
SELECT *, SUM(HOUR(TIMEDIFF(fDate, fDateOut))) AS timediff from test
) t
关于mysql - 如何从时差中减去一个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18776758/