计算sql中两次之间的总时间

时间:2015-05-29 05:14:56

标签: sql-server-2012

我正在使用以下sql来计算表中记录的时间差,并将它们的总和按employeeId和登录日期分组,但我在中间注入一个条件,如果LogOffTime为null我想要区别当天的当前时间和员工登录的时间。 注意:每位员工一天可以拥有多个登录和LogOff

ROUND(SUM(DATEDIFF(SECOND, LogInTime,   IIF(LogOffTime <> NULL,LogOffTime,GetDate()))) / 3600.0, 1) as HoursWorked

但我的情况IIF(LogOffTime <> NULL,LogOffTime,GetDate())在这里似乎不正确,如果情况正确,有人有任何想法。

1 个答案:

答案 0 :(得分:0)

我扭转了条件并且它有效,谢谢,以下是sql

ROUND(SUM(DATEDIFF(SECOND, LogInTime, 
                    IIF(LogOffTime IS NULL,GetDate(),LogOffTime)
                    )) / 3600.0, 1) as SystemHours