C# 如何在sql中获取最近3小时内更新的记录

C# 如何在sql中获取最近3小时内更新的记录,c#,sql,sql-server,asp.net-mvc,sql-server-2008,C#,Sql,Sql Server,Asp.net Mvc,Sql Server 2008,我有一个服务员。有人在过去3小时内更新了一些记录。我想得到那些更新过的记录。 如果可能的话,我想要sql中上一条记录和当前记录之间的差异。 我想要一个问题的答案。使用DATEDIFF: 如果表中有任何列的数据类型为Row version,则时间戳值将自动添加到表中的每一行。每次对特定行执行任何操作时,都将修改此列值。行版本是行的时间戳值。如果更新表中任何行的值,则行的时间戳值将自动更新。新的时间戳值将始终是表中所有行中存在的最大时间戳值的下一个递增值。要获取上次更新的时间戳值,只需查询最新的3行

我有一个服务员。有人在过去3小时内更新了一些记录。我想得到那些更新过的记录。 如果可能的话,我想要sql中上一条记录和当前记录之间的差异。 我想要一个问题的答案。

使用DATEDIFF:


如果表中有任何列的数据类型为Row version,则时间戳值将自动添加到表中的每一行。每次对特定行执行任何操作时,都将修改此列值。行版本是行的时间戳值。如果更新表中任何行的值,则行的时间戳值将自动更新。新的时间戳值将始终是表中所有行中存在的最大时间戳值的下一个递增值。要获取上次更新的时间戳值,只需查询最新的3行版本列

CREATE TABLE Employee(EmployeeID int PRIMARY KEY, VerCol rowversion) ;

您正在考虑更新Employee中的列。但是我没有任何专栏来维护更新的时间。我正在考虑从sql server内部时间戳获取它。@Hemantmalport:然后您需要添加一个。引用自:记录的磁盘上结构或为此目的的页面不包含对上次更新时间的任何引用。。。。记录/行级别没有此类信息。考虑到SQL Server是用来存储数十亿条记录的,它为什么要存储可能从未使用过的信息?您的表结构是什么?如果您存储诸如CreatedDate/updateDate之类的内容,则可以使用Tim Schmelter提供的解决方案,如果您没有适当的审计,则无法获得以前的值。sql server没有行的本机版本控件。
CREATE TABLE Employee(EmployeeID int PRIMARY KEY, VerCol rowversion) ;