Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

LINQ क्वेरी में दो तिथियों के बीच आने वाली तिथि सीमा

मैं आपकी आवश्यकताओं पर 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 के लिए कोई मान नहीं लौटाता" आवश्यकता को पूरा करेगा।

मुझे बताएं कि क्या मैंने आपकी आवश्यकताओं को समझने में गलती की है और मुझे कोई बदलाव करने की आवश्यकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL कन्वर्ट दिनांक फ़ंक्शन का उपयोग करने के विभिन्न तरीके

  2. SQL संग्रहीत कार्यविधि में गतिशील SQL परिणाम अस्थायी तालिका में होता है

  3. एमएस एसक्यूएल सर्वर में संचयी कुल

  4. ADO.NET कॉलिंग T-SQL संग्रहीत कार्यविधि एक SqlTimeoutException का कारण बनती है

  5. विभिन्न सर्वर पर उत्पन्न स्क्रिप्ट द्वारा बनाई गई स्क्रिप्ट को चलाने से त्रुटि मिलती है