Oracle डाटाबेस में, LAST_DAY()
फ़ंक्शन महीने का अंतिम दिन लौटाता है जिसमें आपूर्ति की गई तारीख होती है।
यह एक तर्क को स्वीकार करता है, जो वह तारीख है जिसके लिए आप महीने का अंतिम दिन खोजना चाहते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
LAST_DAY(date)
जहां date
वह दिनांक अभिव्यक्ति है जिसके लिए आप महीने का अंतिम दिन खोजना चाहते हैं।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT LAST_DAY(DATE '2030-02-01')
FROM DUAL;
परिणाम:
28-फरवरी-30
इस मामले में, हम फरवरी में एक तिथि का उपयोग कर रहे हैं। जैसा कि यह पता चला है, उस वर्ष फरवरी में 28 दिन होते हैं।
अगर हम तारीख को अगले लीप वर्ष तक बढ़ा देते हैं तो क्या होगा:
SELECT LAST_DAY(DATE '2032-02-01')
FROM DUAL;
परिणाम:
29-FEB-32
महीने का अंतिम दिन सत्र पैरामीटर NLS_CALENDAR
. द्वारा परिभाषित किया गया है . यह पता लगाने के लिए कि आपका सत्र किस कैलेंडर का उपयोग कर रहा है, एनएलएस पैरामीटर्स के मूल्यों की जांच कैसे करें देखें। मेरा ग्रेगोरियन कैलेंडर का उपयोग कर रहा है।
साथ ही, आपके सत्र के लिए निर्दिष्ट प्रारूप में तिथि लौटा दी जाती है। इस उदाहरण में, मेरा सत्र उस समय के लिए डिफ़ॉल्ट प्रारूप का उपयोग कर रहा है जब NLS_TERRITORY
पैरामीटर AMERICA
. पर सेट है . आप चाहें तो अपने सत्र के डेटाटाइम प्रारूपों को कभी भी बदल सकते हैं।
अन्य डेटाटाइम मान
यह अन्य डेटाटाइम मानों के साथ भी काम करता है, जैसे TIMESTAMP
, आदि:
SELECT LAST_DAY(TIMESTAMP '2030-02-01 10:30:45.34567')
FROM DUAL;
परिणाम:
28-फरवरी-30
हालांकि, वापसी का प्रकार हमेशा DATE
होता है , तर्क के डेटा प्रकार की परवाह किए बिना।
सीमा से बाहर की तिथियां
शून्य तिथियां और अन्य सीमा से बाहर की तारीखों के परिणामस्वरूप त्रुटि होती है।
उदाहरण:
SELECT LAST_DAY(DATE '0000-00-00')
FROM DUAL;
परिणाम:
पंक्ति से शुरू होने में त्रुटि:1 कमांड में - LAST_DAY चुनें (दिनांक '0000-00-00') DUALError से कमांड लाइन पर:1 कॉलम:22 त्रुटि रिपोर्ट-एसक्यूएल त्रुटि:ओआरए -01841:(पूर्ण) वर्ष के बीच होना चाहिए -4713 और +9999, और 001841. 00000 नहीं - "(पूर्ण) वर्ष -4713 और +9999 के बीच होना चाहिए, और 0 नहीं होना चाहिए"*कारण:अवैध वर्ष दर्ज किया गया*कार्रवाई:निर्दिष्ट सीमा में इनपुट वर्ष>जैसा कि त्रुटि संदेश बताता है, (पूर्ण) वर्ष
-4713
. के बीच होना चाहिए और+9999
, और0
. नहीं होना चाहिए ।वर्तमान तिथि
हम
SYSDATE
. पास कर सकते हैं वर्तमान तिथि का उपयोग करने के लिए डेटाटाइम तर्क के रूप में:SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL;
परिणाम:
SYSDATE LAST_DAY (SYSDATE) ____________ ____________________ 12-AUG-21 31-AUG-21अनुपलब्ध तर्क
कॉलिंग
LAST_DAY()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:SELECT LAST_DAY() FROM DUAL;
परिणाम:
लाइन से शुरू होने में त्रुटि:कमांड में 1 - DUAL से LAST_DAY () का चयन करें कमांड लाइन पर त्रुटि:1 कॉलम:8 त्रुटि रिपोर्ट - SQL त्रुटि:ORA-00909:तर्कों की अमान्य संख्या00909। 00000 - "तर्कों की अमान्य संख्या"*कारण:*कार्रवाई: