提问人:Sam Eklund 提问时间:8/11/2021 最后编辑:A DUBEYSam Eklund 更新时间:8/12/2021 访问量:141
SQL 选择彼此“接近”的日期时间值
SQL selecting datetime values which are 'close' to each other
问:
我有一个系统在特定时间(plannedTime)计划事件,当这些事件播放时,同一表会更新行(playedTime),两者都是datetime类型,因此比较应该非常简单。在应用程序中执行此操作不会有问题,但是有没有一种简单的方法可以选择具有 playedTime 的事件,该事件在一个查询中是 plannedTime 的 10 分钟内?
我试过:
SELECT * FROM eventlist
where playedTime LIKE plannedTime
但是,这只会给我在计划的同时播放的事件,如果有的话,这很少。
我的想法是在 played- 和 plannedTime 之间创建一个时间跨度,如果不超过 10 分钟,请将其包含在结果中,但我不知道从哪里开始 SQL 查询。
答:
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
太棒了,这正是我想要的,谢谢戈登!
评论