Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
针对日期差异的单表高效SQL查询_Sql_Sql Server_Query Performance - Fatal编程技术网

针对日期差异的单表高效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

我有一个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时,

输出

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)
不是更好吗?我认为,如果有索引od
LastUpdate
列,就不会使用它。使用
WHERE LastUpdate>DATEADD(minute,-5,current_timestam)
不是更好吗?