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

LAST_DAY () Oracle में फ़ंक्शन

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 - "तर्कों की अमान्य संख्या"*कारण:*कार्रवाई:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle तालिका की अंतिम पंक्ति कैसे प्राप्त करें?

  2. क्या ओरेकल में बाइंड वेरिएबल्स के माध्यम से कॉलम नामों को संदर्भित करना संभव है?

  3. Oracle डेटाबेस में पैरामीटर के बिना PL/SQL संग्रहीत कार्यविधियाँ कैसे बनाएँ?

  4. उदाहरण के साथ Oracle में प्राथमिक कुंजी पर शीर्ष प्रश्न

  5. Oracle में तारीख से महीने का नाम प्राप्त करें