首页  >  问答  >  正文

在两个日期范围之间搜索

我正在开发一个汽车租赁系统,人们可以在这个页面中预订汽车。

所以我需要知道如何使用预订表中客户的日期范围(出租和归还)进行搜索。

我有这张表:

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粉884548619P粉884548619180 天前421

全部回复(1)我来回复

  • P粉118698740

    P粉1186987402024-04-04 10:41:43

    当每个范围起点小于相反的范围终点时,两个范围重叠。即

    ...
    WHERE booking.date_out < $date_cliente_wants_rent
      AND $date_cliente_wants_return < booking.date_return
    ...

    取决于逻辑,一个或两个比较可能很弱。

    回复
    0
  • 取消回复