我正在开发一个汽车租赁系统,人们可以在这个页面中预订汽车。
所以我需要知道如何使用预订表中客户的日期范围(出租和归还)进行搜索。
我有这张表:
CREATE TABLE `autos_bookings` ( `id` int(11) NOT NULL, `booking_id` int(11) NOT NULL DEFAULT '0', `auto_id` int(11) NOT NULL DEFAULT '0', `date_out` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `date_return` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `autos_bookings` ADD PRIMARY KEY (`id`); ALTER TABLE `autos_bookings` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
所以,我想做的是有另一个日期范围(例如,假设:$dateclientewantsrent
和 $dateclientewantsreturn
),并在该表中搜索是否有任何现有预订。
SELECT * FROM `autos_bookings` WHERE SOMETHING
P粉1186987402024-04-04 10:41:43
当每个范围起点小于相反的范围终点时,两个范围重叠。即
... WHERE booking.date_out < $date_cliente_wants_rent AND $date_cliente_wants_return < booking.date_return ...
取决于逻辑,一个或两个比较可能很弱。