Не съм 100% сигурен в това, но мисля, че тази заявка трябва да е доста близка:
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
Заменете @starttime, @endtime &@equipID с подходящия идентификатор на оборудването и началните и крайните времена, въведени от потребителя. Ако тази заявка не върне резултати, тогава не трябва да има времеви конфликти.
По същество това е проверка за тези 3 сценария, където *е вашето начално и крайно време, - е неизползвано време и | време е да се използва от някой друг:
-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------