मैं आपकी आवश्यकताओं पर 100% स्पष्ट नहीं हूं। अपनी प्रारंभिक पंक्ति में आपने रिकॉर्ड के लिए कहा "जहां इनपुट दिनांक सीमा दो दिनांक फ़ील्ड के बीच आती है", लेकिन "इसके अतिरिक्त" पंक्ति में आप इंगित करते हैं कि आप ऐसे रिकॉर्ड वापस नहीं करना चाहते हैं जहां अपॉइंटमेंट की प्रारंभ तिथि समान नहीं है आपके इनपुट की अंतिम तिथि। मैं इन्हें दो अलग-अलग आवश्यकताओं के रूप में लेता हूं, इसलिए मैं आपको दो अलग-अलग प्रश्न दूंगा।
पहली क्वेरी है:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
दूसरी क्वेरी है:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
पहली क्वेरी उन रिकॉर्ड को लौटाती है जिनमें इनपुट तिथियां "शामिल" होती हैं।
दूसरी क्वेरी यह रिकॉर्ड करती है कि इनपुट तिथियों को "ओवरलैप" किया जाता है।
मुझे लगता है कि यह अधिक समझ में आता है कि आप ओवरलैप क्वेरी चाहते हैं और यह आपकी "14:00 - 15:00 15:00-16:00 के लिए कोई मान नहीं लौटाता" आवश्यकता को पूरा करेगा।
मुझे बताएं कि क्या मैंने आपकी आवश्यकताओं को समझने में गलती की है और मुझे कोई बदलाव करने की आवश्यकता है।