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

सही मान नहीं लौटाने के बीच के महीने

तुम गलत हो। MONTHS_BETWEEN date '2017-02-28' . से समय अवधि का व्यवहार करता है से date '2017-03-28' . तक ठीक एक महीने के रूप में (दो आसन्न महीनों में एक ही दिन)। इसे डॉक्स में पढ़ा जा सकता है:https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions089.htm

एक तारीख दूसरी से बड़ी होती है, इसलिए आपको एक धनात्मक या ऋणात्मक संख्या (अर्थात शून्य नहीं) प्राप्त होती है, जिसके आधार पर कौन सा पहला है और कौन सा दूसरा पैरामीटर है, और जैसे-जैसे दिन बराबर होंगे, परिणाम एक पूर्णांक होगा। यह आसन्न महीनों के लिए 1 या -1 है।

महीने की गणना वैसे भी एक अजीब चीज है, क्योंकि एक महीना एक निर्धारित समय अवधि नहीं है। ऐसा लगता है कि आपके मन में एक निश्चित परिभाषा है, जो कि MONTHS_BETWEEN से बिल्कुल अलग है। को परिभाषित। इसमें कुछ भी गलत नहीं है। मैं MONTHS_BETWEEN से सहमत हूं इस मामले में; 28 फरवरी से 28 मार्च तक "बिल्कुल" एक महीना है। यदि आप अलग नियम चाहते हैं, तो अपना गणित लागू करें :-)



  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. जुड़ें का उपयोग कर Oracle अद्यतन क्वेरी

  3. SQL खोज परिणामों से उचित दिनांक स्वरूप प्राप्त करना (datetime.datetime)

  4. अपठनीय गतिशील SQL के बिना Oracle डेटाबेस लिंक का उपयोग करना

  5. Oracle SQL गैर-अद्वितीय तालिका उपनाम एक चयन में