【问题标题】:SQL selecting datetime values which are 'close' to each otherSQL选择彼此“接近”的日期时间值
【发布时间】:2021-10-14 19:32:23
【问题描述】:

我有一个在特定时间计划事件的系统(plannedTime),当这些事件被播放时,同一个表会随着行(playedTime)更新,两者都是日期时间类型,所以比较应该很简单。在应用程序中执行此操作不会有问题,但是否有一种简单的方法可以在一次查询中选择 playTime 与计划时间相差 10 分钟内的事件?

我试过了:

SELECT * FROM eventlist
where playedTime LIKE plannedTime

但是,这只会给我提供与计划在完全相同的时间进行的赛事,如果有的话,那是很少的。

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

【问题讨论】:

    标签: sql sql-server datetime comparison


    【解决方案1】:

    我想你想要时间比较:

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

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

    【讨论】:

    • 太棒了,这正是我想要的,谢谢 Gordon!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多