Maison  >  Questions et réponses  >  le corps du texte

Rechercher entre deux plages de dates

Je développe un système de location de voitures où les gens peuvent réserver une voiture sur cette page.

J'ai donc besoin de savoir comment effectuer une recherche en utilisant la plage de dates du client (location et retour) à partir du formulaire de réservation.

J'ai ce tableau :

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;

Donc, ce que je veux faire, c'est avoir une autre plage de dates (par exemple, disons : $dateclientewantsrent$dateclientewantsreturn) et rechercher dans cette table toutes les réservations existantes.

SELECT * FROM `autos_bookings` WHERE SOMETHING

P粉884548619P粉884548619180 Il y a quelques jours422

répondre à tous(1)je répondrai

  • P粉118698740

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

    Deux plages se chevauchent lorsque chaque point de début de plage est plus petit que le point final de plage opposé. C'est

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

    Selon la logique, une ou les deux comparaisons peuvent être faibles.

    répondre
    0
  • Annulerrépondre