我想找到一个最佳的约会时间,该日期之前有20分钟的空闲时间,过去也至少有20分钟。
所以

在数据库中:


2014-03-24 10:30
2014-03-24 11:10
2014-03-24 12:00
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查询中解决吗?
谢谢 :)

最佳答案

要获取超过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;

10-05 23:47
查看更多