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

उपयोगकर्ता-ईवेंट ORM मॉडल के लिए अवरुद्ध तिथियों का कार्यान्वयन

मैंने जो समाधान चुना है वह यहां है। ट्रिक left outer join . का उपयोग कर रही थी (रूबी कमांड उत्सुक_लोड) उपयोगकर्ताओं और ब्लॉक्ड_डेट_पीरियोड टेबल के लिए, और उन उपयोगकर्ताओं सहित, जिनकी सम्मिलित तालिका में start_date फ़ील्ड NULL है, जाहिर है क्योंकि उनके पास स्वयं से जुड़ी कोई भी अवरुद्ध तिथि वस्तु नहीं है। मैं जिस क्वेरी का उपयोग करता हूं:

User.eager_load(:blocked_date_periods).
  where("blocked_date_periods.start_date is null OR 
    not tsrange(
      blocked_date_periods.start_date - '00:59:59'::interval,
      blocked_date_periods.end_date + '00:59:59'::interval
    ) @> ?::timestamp", 
  Date.parse(DATE_STRING)).count

मुझे प्रारंभ और समाप्ति तिथि से 1 घंटा जोड़ना और घटाना पड़ा क्योंकि क्वेरी किसी कारण से सटीक समाप्ति तिथियों को शामिल नहीं करना चाहती थी, इसलिए 12-26-2015 को 12-22-2015 से 12-22-2015 की अवधि के अंदर शामिल नहीं किया गया था। 12-16-2015 किसी कारण से मुझे अभी तक समझ नहीं आया है।

किसी कारण से मुझे वह समाधान पसंद नहीं है और मैं जानना चाहूंगा कि क्या कोई प्रश्न है जो मेरे पास से बेहतर और तेज़ है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांक सीमाओं के आधार पर अलग-अलग पंक्तियों की संख्या की क्वेरी करना

  2. PostgreSQL VALUES कमांड समझाया गया

  3. PostgreSQL में स्टेटमेंट के निष्पादन को कैसे रोकें

  4. कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता

  5. Psql स्क्रिप्ट चलाते समय जानकारी संदेशों को कैसे दबाएं?