Sql 检查日期范围是否与访问权限冲突
我在写一个查询时遇到了问题,该查询将告诉我给定的汽车是否在指定的日期段内预订。我的表称为Bookings,有CarID、StartDate和EndDate列。如果在用户进入的时间段内预订了汽车,我想返回一行。目前,我有一个问题,我从互联网和一些修补程序中得到:Sql 检查日期范围是否与访问权限冲突,sql,date,ms-access,Sql,Date,Ms Access,我在写一个查询时遇到了问题,该查询将告诉我给定的汽车是否在指定的日期段内预订。我的表称为Bookings,有CarID、StartDate和EndDate列。如果在用户进入的时间段内预订了汽车,我想返回一行。目前,我有一个问题,我从互联网和一些修补程序中得到: SELECT * FROM Bookings WHERE BookingID NOT IN (SELECT BookingID FROM Bookings WHERE (StartDate <= user_start_da
SELECT *
FROM Bookings
WHERE BookingID NOT IN
(SELECT BookingID
FROM Bookings
WHERE
(StartDate <= user_start_date AND EndDate >= user_start_date) OR
(StartDate <= user_end_date AND EndDate >= user_end_date) OR
(StartDate >= user_start_date AND EndDate <= user_end_date)) AND
(CarID = 7)
在这里,我使用用户开始日期作为用户的开始日期,用户结束日期作为用户的结束日期,汽车使用7。然而,这种逻辑似乎不起作用。即使我确认日期中绝对没有冲突,它也总是返回行
如何结束此查询以使其正常工作
谢谢假设所有日期都不能为空,且开始日期小于结束日期,以下查询应列出与给定日期范围重叠的第7辆车的所有预订:
SELECT *
FROM Bookings
WHERE CarID = 7
AND StartDate < user_end_date
AND EndDate > user_start_date