我想找到一个最佳的约会时间,该日期之前有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;