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

एक डेटारेंज के लिए पोस्टग्रेज की ऊपरी रेंज फ़ंक्शन एक विशेष बाउंड क्यों लौटाता है?

पुन:प्रश्न #1 :क्लोज्ड-ओपन शैक्षणिक साहित्य में 20-25 वर्षों के इतिहास के साथ दिनांक सीमाओं को संभालने का मानक तरीका है। बिटेम्पोरल डेटा . का पीपी. 24-25 देखें टॉम जॉनस्टन द्वारा, और एसक्यूएल में समय-उन्मुख डेटाबेस अनुप्रयोगों का विकास रिचर्ड स्नोडग्रास द्वारा।

लेकिन मुझे लगता है कि इसका एक कारण यह है कि लगातार श्रेणियों में ओवरलैप नहीं होता है। अगर a है [May2016, Jun2016) और b है [Jun2016, Jul2016) , वे कोई दिन साझा नहीं करते हैं। इसलिए वे "एक साथ स्नैप" करते हैं, और आपको किनारे के मामलों के बारे में चिंता करने की ज़रूरत नहीं है जहां वे स्पर्श करते हैं।

ध्यान दें कि बंद-खुले का एक दोष (शायद) यह है कि आप एक खाली सीमा निर्दिष्ट नहीं कर सकते। [May2016, May2016) केवल एक आत्म-विरोधाभास है, जबकि [May2016, May2016] एक पल है।

पुन:प्रश्न #2 :फिर से यह अलग हो सकता था, लेकिन मैं upper([May2016, Jun2016)) बनाने के कई फायदों के बारे में सोच सकता हूं वापसी Jun2016 :

  • श्रेणी के रिज़ॉल्यूशन की परवाह किए बिना यह वही चीज़ लौटाता है।
  • यह एक खुले समापन बिंदु के गणितीय अर्थ की तरह है, जहां यह केवल केवल . है संभव उत्तर।
  • यह वही लौटाता है जो "लेबल" से मेल खाता है, इसलिए यकीनन यह कम आश्चर्यजनक है।
  • यह आपको आसानी से देखने देता है कि क्या दो श्रेणियां "मिलती हैं":upper(a) = lower(b)

साथ ही, ध्यान दें कि Postgres में सभी समय से संबंधित डेटाटाइप असतत हैं। पोस्टग्रेज़ को फ्लोट-आधारित टाइमस्टैम्प के साथ संकलित करने का एक विकल्प हुआ करता था, लेकिन इसे बहिष्कृत कर दिया गया है और मैंने कभी इसका सामना नहीं किया है।




  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:कमांड लाइन के माध्यम से PostgreSQL डेटाबेस को छोड़ें

  2. अपार्टमेंट रत्न के साथ विदेशी प्रमुख मुद्दे

  3. PostgreSQL डेटाबेस कॉलम से गैर-संख्यात्मक मान लौटाएं

  4. तैयार बयानों के लिए अशक्त बाध्य करते समय बाइटा त्रुटि पोस्टग्रेज करता है

  5. विभिन्न चयन प्रश्नों के आउटपुट को वापस करने के लिए पीएल/पीजीएसक्यूएल फ़ंक्शन को दोबारा दोहराएं