Nejsem si tím 100% jistý, ale myslím, že tento dotaz by měl být docela blízko:
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
Nahraďte @starttime, @endtime &@equipID příslušným ID zařízení a časy začátku a konce zadané uživatelem. Pokud tento dotaz nevrátí žádné výsledky, pak by neměly být žádné časové konflikty.
V podstatě je to kontrola těchto 3 scénářů, kde *je váš počáteční a koncový čas, - je nevyužitý čas a | je čas, aby ho použil někdo jiný:
-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------