繁体   English   中英

在MySQL中选择两次之间的第一个空闲日期时间

[英]Select first free datetime between two time in mysql

我想找到一个最佳的约会时间,该日期之前有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查询中解决吗? 谢谢 :)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM