针对日期差异对单个 table 进行高效 SQL 查询
efficient SQL query on single table for Date Difference
我有一个 SQL Table (TEST) 包含测试名称和上次更新日期时间。最后更新日期时间通过外部服务每 5 分钟更新一次。我有一项服务每分钟运行一次,每分钟循环 table 中的所有行,并查找上次更新日期时间和当前日期时间之间的差异是否小于或等于 5 分钟,否则,我需要select 那些记录。 table 最多有 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
因为当前日期和上次更新时间相差超过 5 分钟。
我认为您可以将每条记录的时间戳与当前时间戳进行比较,然后保留距现在 5 分钟以内的那些记录:
SELECT *
FROM yourTable
WHERE LastUpdate > DATEADD(minute, -5, current_timestamp)
我有一个 SQL Table (TEST) 包含测试名称和上次更新日期时间。最后更新日期时间通过外部服务每 5 分钟更新一次。我有一项服务每分钟运行一次,每分钟循环 table 中的所有行,并查找上次更新日期时间和当前日期时间之间的差异是否小于或等于 5 分钟,否则,我需要select 那些记录。 table 最多有 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
因为当前日期和上次更新时间相差超过 5 分钟。
我认为您可以将每条记录的时间戳与当前时间戳进行比较,然后保留距现在 5 分钟以内的那些记录:
SELECT *
FROM yourTable
WHERE LastUpdate > DATEADD(minute, -5, current_timestamp)