sql >> Database >  >> RDS >> Mysql

Logica bepalen voor MySQL Select - Reserveringssysteem

Ik ben hier niet 100% zeker van, maar ik denk dat deze vraag redelijk dichtbij zou moeten zijn:

select * from tblEvents
where (@starttime >= start && @starttime <= end) /* Starts while someone else has it */
or (@endtime >= start && @endtime <= end) /* Ends while someone else has it */
or (@startime <= start && @endtime >= end) /* Starts before & ends after someone else has it*/
and equipID = @equipID

Vervang @starttime, @endtime &@equipID door de juiste apparatuur-ID en begin- en eindtijden ingevoerd door de gebruiker. Als deze zoekopdracht geen resultaten oplevert, mogen er geen tijdconflicten zijn.

Het controleert in feite op deze 3 scenario's, waarbij de *uw start- en eindtijd is, de - ongebruikte tijd en de | is tijd dat het door iemand anders wordt gebruikt:

-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------


  1. PHP's PDO negeert de ATTR_TIMEOUT-optie voor MySQL wanneer de server niet kan worden bereikt

  2. Hoe zorg ik ervoor dat de functies NOW() en CURDATE() van MySQL UTC gebruiken?

  3. MySQL verbinden met Visual Studio C#

  4. Creëert een externe sleutel automatisch een index?