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:
-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------