我在表中有如下数据。
TimeIn TimeOut
-------------------------------------
6/1/2010 09:00:00 Null
6/2/2010 09:00:00 6/2/2010 16:45:00
6/3/2010 10:05:00 Null
6/4/2010 07:30:00 6/4/2010 15:45:00
我有存储过程来查找带有“未注销”列的最后一个活动
我也有一个将单元格复制到其他单元格的存储过程...
然后,我需要的是更新 [TimeOut] (如果没有超时)
通过更优雅的方式,比如
UPDATE TimeOut SET DATEPART(HOUR, TimeOut) = DATEPART(HOUR, TimeIN) + 8
所以整个想法是首先检查最后一个活动 - 超时列是否为空
然后如果是,请签署 TimeOut 并允许最长工作时间 (8)。
有简单的方法吗?
更新
至于马克的回答,这是找出用户是否没有退出的选择
SELECT CASE WHEN [TimeOut] IS NULL THEN '' ELSE CONVERT(NVARCHAR,[TimeOut]) END FROM tblTime WHERE tId = ( SELECT MAX(tId) FROM tblTime WHERE UserId = 123
所以我有一个查询来查找谁没有在最后一次活动中退出
那么我只需要更新那个特定的 Row - 字段TimeOut
+ 8 有几个小时的时间,这是我的问题