SQL select *基于另一个表中的两个日期

时间:2013-01-22 11:05:37

标签: sql select plsql

  

可能重复:
  Determine Whether Two Date Ranges Overlap

我正在尝试创建一个查询,根据他们是否在预订表中预订,选择一个表中的所有汽车。目前我有这个很好用,直到我从预订日期减去一天和预订两个日期再加上一天。因为我使用等于它将显示在该日期范围内预订的汽车。

我如何改变这一点,如果我在预订表中有一辆车,其日期为22-jan-13,日期为25-jan-13,用户输入的日期为20-分别是jan-13和27-jan-13,车子不会出现在结果中。

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;

感谢。

1 个答案:

答案 0 :(得分:0)

使用BETWEEN运算符 - SELECT ... WHERE ... BETWEEN start_date AND end_date...