可能重复:
确定两个日期范围是否重叠
我正在尝试创建一个查询,该查询根据预订表中是否有预订来选择一个表中的所有汽车。目前我有这个效果很好,直到我把预订日期减去一天和预订两个日期加上一天。因为我使用的是 equals,所以它会显示在该日期范围内预订的汽车。
如果我在预订表中有一辆从 2013 年 1 月 22 日到 2013 年 1 月 25 日的汽车,并且用户输入 2013 年 1 月 20 日的从和 13 年 1 月 27 日,汽车将不会出现在结果中。
SELECT *
FROM vehicles, car_model, manufacture
WHERE NOT EXISTS (SELECT *
FROM booking
WHERE vehicles.reg_number = booking.reg_number
AND booking.date_from = '22-JAN-13'
AND booking.date_to = '23-JAN-13'
AND booking.booking_status = 1)
AND vehicles.model_code = car_model.model_code
AND car_model.manufacture_code = manufacture.manufacture_code;
谢谢。