我正在制作一个带有开始时间/日期和结束时间/日期的 parking 预订系统。 你不能同时预订同一个位置,因为它已经被另一辆车占用了。
共有三个选项: - 重叠的时间/日期 - 在时间/日期之间 - 大约时间/日期
数据库示例:
STARTTIME | ENDTIME
2014-11-14 13:00:00 | 2014-11-16 14:00:00
我想在数据库中搜索所有不可用的日期。 例如:
用户输入的新预订(AROUND existing dates),
STARTTIM | ENDTIME
2014-11-13 10:00:00 | 2014-11-17 16:00:00
如果新预订以任何方式与现有预订重叠,查询应输出所有不可用的日期
最佳答案
我想这就是你想要的逻辑:
select t.*
from table t
where p.starttime < @EndTime and p.EndTime > @StartTime;
其中 @StartTime
和 @EndTime
是用户输入的变量。这个想法是,如果一个时期在另一个时期结束之前开始,那么两个时期就会重叠,并且第一个时期在另一个时期开始之后结束。
关于mysql - 我有 2 个日期选择器,我想选择在此日期之间或之外重叠的 2 个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677350/