SQL 选择彼此“接近”的日期时间值

SQL selecting datetime values which are 'close' to each other

提问人:Sam Eklund 提问时间:8/11/2021 最后编辑:A DUBEYSam Eklund 更新时间:8/12/2021 访问量:141

问:

我有一个系统在特定时间(plannedTime)计划事件,当这些事件播放时,同一表会更新行(playedTime),两者都是datetime类型,因此比较应该非常简单。在应用程序中执行此操作不会有问题,但是有没有一种简单的方法可以选择具有 playedTime 的事件,该事件在一个查询中是 plannedTime 的 10 分钟内?

我试过:

SELECT * FROM eventlist
where playedTime LIKE plannedTime

但是,这只会给我在计划的同时播放的事件,如果有的话,这很少。

我的想法是在 played- 和 plannedTime 之间创建一个时间跨度,如果不超过 10 分钟,请将其包含在结果中,但我不知道从哪里开始 SQL 查询。

SQL Server 日期时间 比较

评论


答:

1赞 Gordon Linoff 8/11/2021 #1

我认为你想要时间比较:

SELECT el.*
FROM eventlist el
WHERE el.playedTime <= DATEADD(minute, 10, plannedTime) AND
      el.playedTime >= DATEADD(minute, -10, plannedTime);

注意:这会将“10 分钟内”解释为之前或之后。

评论

0赞 Sam Eklund 8/11/2021
太棒了,这正是我想要的,谢谢戈登!