0

我想找到一个最好的日期时间,之前有 20 分钟的空闲时间,并且过去至少有 20 分钟。所以

在数据库中:

  1. 2014-03-24 10:30
  2. 2014-03-24 11:10
  3. 2014-03-24 12:00
  4. 2014-03-24 12:30

如果我在 11:15 运行,我想获得 2014-03-24 11:30,因为 11-30-11:10 = 20 和 12:00-11:30 >= 20。

所以,我需要选择一个日期时间而不是数据库中的一行(稍后插入)。我需要在数据库中找到前后有 20-20 分钟空白期的最近日期。否则,我正在寻找它在数据库中的 40 分钟漏洞并获得中间。

这可以在mysql查询中解决吗?谢谢 :)

4

1 回答 1

1

要获取过去 20 多分钟前的最新时间戳:

select *
from table t
where datetimefield < now() - interval 20 minutes
order by datetimefield desc
limit 1;

如果您只想限制20分钟后没有时间戳的那些:

select *
from table t
where datetimefield < now() - interval 20 minutes and
      not exists (select 1
                  from table t2
                  where t2.datetimefield between t.datetimefield and t.datetimefield + interval 20 minutes
                )
order by datetimefield desc
limit 1;
于 2014-03-24T01:50:16.737 回答