用于日期差异的单个表上的高效SQL查询

时间:2017-07-25 05:49:05

标签: sql sql-server query-performance

我有一个包含测试名称和上次更新日期时间的SQL表(TEST)。上次更新日期时间每5分钟通过外部服务更新一次。我有一个服务,每分钟运行一次,每分钟循环表中的所有行,并找出上次更新日期时间和当前日期时间之间的差异是否小于或等于5分钟,否则,我需要选择这些记录。该表最多有500条记录。是否有任何有效的SQL查询来检索除逐个循环之外的那些记录?建议或意见高度赞赏。

样本数据

TestName    LastUpdated
Test1       2017-07-25 11:30:33
Test2       2017-07-25 11:20:12
Test3       2017-07-25 11:27:14
Test4       2017-07-25 11:17:18

如果我认为当前时间是2017-07-25 11:31:00,

输出

Test2
Test4

因为当前日期与LastUpdated之间的差异大于5分钟。

1 个答案:

答案 0 :(得分:2)

我认为您可以将每条记录的时间戳与当前时间戳进行比较,然后保留那些在5分钟内记录的记录:

SELECT *
FROM yourTable
WHERE LastUpdate > DATEADD(minute, -5, current_timestamp)