我有一张桌子Employee
。有人在过去3小时内更新了一些记录。我想得到那些更新的记录。
如果可能的话,我想在sql
中的先前和当前记录之间进行差异。
我想要一个答案作为查询。
答案 0 :(得分:3)
使用DATEDIFF
:
SELECT e.*
FROM Employee e
WHERE DATEDIFF(HOUR, e.UpdatedAt, GETDATE()) <= 3
答案 1 :(得分:0)
如果表中的任何列的数据类型为Row version,则会自动将时间戳值添加到表中的每一行。每次在特定行上执行任何操作时,都会修改此列值。如果我们更新行中的任何行,则行的行的Time.TIMESTAMP值将自动更新行的Timestamp值。表。新的TIMESTAMP值将始终是表中所有行中存在的最大TIMESTAMP值的下一个递增值。要获取上次更新,只需查询最新的3行版本列
CREATE TABLE Employee(EmployeeID int PRIMARY KEY, VerCol rowversion) ;