मैं इस पर 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 परिदृश्यों की जांच कर रहा है, जहां *आपका प्रारंभ और समाप्ति समय है, - अप्रयुक्त समय है, और | क्या यह समय किसी और के द्वारा उपयोग किया जा रहा है:
-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------