针对日期差异的单表高效SQL查询
我有一个SQL表(TEST),其中包含测试名称和上次更新的日期和时间。最后更新的日期时间通过外部服务每5分钟更新一次。我有一个每分钟运行一次的服务,以每分钟循环表中的所有行,并查找上次更新的日期时间和当前日期时间之间的差异是否小于或等于5分钟,否则,我需要选择这些记录。该表最多有500条记录。除了逐个循环之外,是否有任何有效的SQL查询来检索这些记录?非常感谢您的建议或意见 样本数据针对日期差异的单表高效SQL查询,sql,sql-server,query-performance,Sql,Sql Server,Query Performance,我有一个SQL表(TEST),其中包含测试名称和上次更新的日期和时间。最后更新的日期时间通过外部服务每5分钟更新一次。我有一个每分钟运行一次的服务,以每分钟循环表中的所有行,并查找上次更新的日期时间和当前日期时间之间的差异是否小于或等于5分钟,否则,我需要选择这些记录。该表最多有500条记录。除了逐个循环之外,是否有任何有效的SQL查询来检索这些记录?非常感谢您的建议或意见 样本数据 TestName LastUpdated Test1 2017-07-25 11:30:33
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时,
输出Test2
Test4
因为当前日期与上次更新日期之间的差异大于5分钟。我认为您可以将每条记录的时间戳与当前时间戳进行比较,然后保留距离现在不超过5分钟的记录:
SELECT *
FROM yourTable
WHERE LastUpdate > DATEADD(minute, -5, current_timestamp)
我认为您可以将每个记录的时间戳与当前时间戳进行比较,然后保留5分钟内的记录:
SELECT *
FROM yourTable
WHERE LastUpdate > DATEADD(minute, -5, current_timestamp)
如果差值不小于或等于5分钟,将选择哪些记录?您正在使用哪个数据库(例如SQL Server、MySQL等)?我需要大于5分钟的记录。我正在使用SQL server 2012。谢谢您是否总是要选择所有超过5分钟的记录?你能给我们展示一些示例数据来说明你的想法吗?我已经编辑了我的帖子来添加示例数据。Thanks如果差异不小于或等于5分钟,将选择哪些记录?您正在使用哪个数据库(例如SQL Server、MySQL等)?我需要大于5分钟的记录。我正在使用SQL server 2012。谢谢您是否总是要选择所有超过5分钟的记录?你能给我们展示一些示例数据来说明你的想法吗?我已经编辑了我的帖子来添加示例数据。谢谢,我想,如果有索引od
LastUpdate
列,它就不会被使用。使用WHERE LastUpdate>DATEADD(minute,-5,current_timestam)
不是更好吗?我认为,如果有索引odLastUpdate
列,就不会使用它。使用WHERE LastUpdate>DATEADD(minute,-5,current_timestam)
不是更好吗?