我们的时间捕获表有以下列,用于为每个用户收集时间戳。
Entered
Exited
使用以下查询时
select entered, exited as ORIGINALEXIT, DATEDIFF(second, entered, exited),
DATEADD(ss, -40, exited) AS AFTERCALC,
DATEDIFF(SECOND,entered, DATEADD(ss, -40, exited)) as AftercalcSeconds
from <table> where deptName = 'Research'
输出如下:
|Entered------------------|Exited-------------------|(NO)|AFTERCALC-----------------|AftercalcSeconds|
|2016-12-14 11:14:15.000 | 2016-12-14 11:14:16.000 | 1 | 2016-12-14 11:13:36.000 | -39 |
|2016-12-14 11:14:30.000 | 2016-12-14 11:14:32.000 | 2 | 2016-12-14 11:13:52.000 | -38 |
|2016-12-14 11:14:05.000 | 2016-12-14 11:14:43.000 | 38 | 2016-12-14 11:14:03.000 | -2 |
期望:
我们需要一个查询,可以检查“AfterCalcSeconds”是否落入-ve值,如果它落入-ve值,我们需要跳过并保留列中的原始值(否)我们需要保留结果为“AfterCalcSeconds”
提前致谢!!!
答案 0 :(得分:0)
要检查“AftercalcSeconds”列是否具有负值,我使用了DateDiff函数
CASE WHEN
DATEDIFF(SECOND, entered, exited) < 0
THEN
//condition
ELSE
//else condition
END
感谢您的支持!