如何从时差中减去一个值

时间:2013-09-13 01:19:56

标签: mysql time

我不知道问题是否合适,但情况是这样的:

在我的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中进行计算?请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

这是一个相当粗略的解决方案,我确信它可以根据您的查询进行优化,但它显示了这个想法。

SELECT *, LEAST(8,timediff) AS timediff, GREATEST(0,timediff-8) AS excess 
FROM (
    SELECT *, SUM(HOUR(TIMEDIFF(fDate, fDateOut))) AS timediff from test
) t