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

SQL क्वेरी दिन/महीने/वर्ष/दिन और माह/दिन और वर्ष आदि के आधार पर खोजने के लिए

आप पीजी/टेम्पोरल एक्सटेंशन का उपयोग करके रख-रखाव योग्य प्रश्न लिख सकते हैं जो अतिरिक्त रूप से तेज़ हैं:

https://github.com/jeff-davis/PostgreSQL-Temporal

create index on events using gist(period(start_date, end_date));

select *
from events
where period(start_date, end_date) @> :date;

select *
from events
where period(start_date, end_date) && period(:start, :end);

आप इसका उपयोग ओवरलैप को तालिका बाधा के रूप में अस्वीकार करने के लिए भी कर सकते हैं:

alter table events
add constraint overlap_excl
exclude using gist(period(start_date, end_date) WITH &&);

यह वास्तव में आपके विचार से अधिक रखरखाव योग्य है, उदा.:

select *
from events
join generate_series(:start_date, :end_date, :interval) as datetime
on start_date <= datetime and datetime < end_date;

लेकिन उपर्युक्त अवधि प्रकार का उपयोग करना बेहतर है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में अभिव्यक्ति अनुक्रमणिका की व्यावहारिक सीमाएँ

  2. पोस्टग्रेज़ उपयोगकर्ता के रूप में PostgreSQL से कनेक्ट करते समय कनेक्शन त्रुटि?

  3. PostgreSQL में ऑटो इंक्रीमेंट प्राथमिक कुंजी कैसे सेट करें?

  4. यदि संभव हो तो कोई PostgreSQL कैसे एम्बेड कर सकता है?

  5. डॉकर-लिखें पर्यावरण चर