Oracle डेटाबेस में, MONTHS_BETWEEN()
फ़ंक्शन दो तिथियों के बीच महीनों की संख्या देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
MONTHS_BETWEEN(date1, date2)
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT MONTHS_BETWEEN(DATE '2030-06-10', DATE '2030-02-10')
FROM DUAL;
परिणाम:
4
इस मामले में दोनों तिथियों के बीच ठीक चार महीने हैं।
महीने का महीना और आखिरी दिन सत्र पैरामीटर NLS_CALENDAR
द्वारा परिभाषित किया गया है . यह पता लगाने के लिए कि आपका सत्र किस कैलेंडर का उपयोग कर रहा है, एनएलएस पैरामीटर्स के मूल्यों की जांच कैसे करें देखें। मेरा ग्रेगोरियन कैलेंडर का उपयोग कर रहा है।
आंशिक महीने
समारोह भिन्नात्मक महीनों के लिए अनुमति देता है। यदि दो तिथियों में अलग-अलग दिन के हिस्से शामिल हैं, तो Oracle डेटाबेस उपयोग करने के लिए लागू भिन्नात्मक घटक को तैयार करता है।
उदाहरण:
SELECT MONTHS_BETWEEN(DATE '2030-06-10', DATE '2030-02-25')
FROM DUAL;
परिणाम:
3.51612903225806451612903225806451612903
नकारात्मक महीने
अगर दूसरी तारीख पहली तारीख के बाद की है, तो एक ऋणात्मक राशि वापस कर दी जाती है:
SELECT MONTHS_BETWEEN(DATE '2030-02-10', DATE '2030-06-10')
FROM DUAL;
परिणाम:
-4
सीमा से बाहर की तिथियां
शून्य तिथियां और अन्य सीमा से बाहर की तारीखों के परिणामस्वरूप त्रुटि होती है।
उदाहरण:
SELECT MONTHS_BETWEEN(DATE '2030-02-10', DATE '0000-00-00')
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT MONTHS_BETWEEN(DATE '2030-02-10', DATE '0000-00-00') FROM DUAL Error at Command Line : 1 Column : 47 Error report - SQL Error: ORA-01841: (full) year must be between -4713 and +9999, and not be 0 01841. 00000 - "(full) year must be between -4713 and +9999, and not be 0" *Cause: Illegal year entered *Action: Input year in the specified range
जैसा कि त्रुटि संदेश बताता है, (पूर्ण) वर्ष -4713
. के बीच होना चाहिए और +9999
, और 0
. नहीं होना चाहिए ।
किसी तारीख की मौजूदा तारीख से तुलना करना
हम SYSDATE
. पास कर सकते हैं वर्तमान तिथि के साथ किसी तिथि की तुलना करने के लिए डेटाटाइम तर्क के रूप में:
SELECT
SYSDATE,
MONTHS_BETWEEN(SYSDATE, DATE '2030-03-01')
FROM DUAL;
परिणाम:
SYSDATE MONTHS_BETWEEN(SYSDATE,DATE'2030-03-01') ____________ ____________________________________________ 13/AUG/21 -102.587825194145758661887694145758661888
अनुपलब्ध तर्क
कॉलिंग MONTHS_BETWEEN()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT MONTHS_BETWEEN()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT MONTHS_BETWEEN() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: