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

TRUNC(दिनांक) Oracle में समारोह

Oracle डाटाबेस में, TRUNC(date) फ़ंक्शन दिए गए दिनांक मान को दिन के समय भाग के साथ निर्दिष्ट प्रारूप मॉडल में प्रदान की गई इकाई को छोटा कर देता है।

Oracle में एक TRUNC(number) भी है सिंटैक्स, जिसका उपयोग संख्याओं पर किया जाता है। यह लेख केवल TRUNC(date) . के बारे में है सिंटैक्स, जिसका उपयोग तिथियों पर किया जाता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

TRUNC(date [, fmt ])

जहां date काटने की तिथि है, और fmt एक वैकल्पिक प्रारूप मॉडल है जो उस इकाई को निर्दिष्ट करता है जिसके लिए मान को छोटा करना है। प्रारूप मॉडल TRUNC(date) . के लिए समर्थित प्रारूप मॉडल में से कोई भी हो सकता है और ROUND(date) कार्य।

फ़ंक्शन ग्रेगोरियन कैलेंडर के नियमों के अनुसार संचालित होता है (यह NLS_CALENDAR के मान के प्रति संवेदनशील नहीं है) पैरामीटर)।

उदाहरण

यहां एक उदाहरण दिया गया है:

SELECT TRUNC(DATE '2035-08-22', 'MONTH')
FROM DUAL;

परिणाम:

01-AUG-35

यहाँ कुछ और हैं:

SELECT 
    TRUNC(DATE '2035-08-22', 'D') AS "D",
    TRUNC(DATE '2035-08-22', 'DD') AS "DD",
    TRUNC(DATE '2035-08-22', 'MONTH') AS "Month",
    TRUNC(DATE '2035-08-22', 'YEAR') AS "Year",
    TRUNC(DATE '2035-08-22', 'CC') AS "CC"
FROM DUAL;

परिणाम:

           D           DD        Month         Year           CC 
____________ ____________ ____________ ____________ ____________ 
19-AUG-35    22-AUG-35    01-AUG-35    01-JAN-35    01-JAN-01   

परिणाम वर्तमान सत्र के दिनांक प्रारूप के अनुसार स्वरूपित किया गया है। वर्तमान सत्र के दिनांक प्रारूप की जांच कैसे करें और वर्तमान सत्र के लिए दिनांक प्रारूप कैसे बदलें, इसके बारे में अधिक जानकारी के लिए देखें।

डिफ़ॉल्ट दिनांक इकाई

डिफ़ॉल्ट दिनांक इकाई DD है :

SELECT 
    TRUNC(DATE '2035-08-22') AS "Default",
    TRUNC(DATE '2035-08-22', 'DD') AS "DD"
FROM DUAL;

परिणाम:

     Default           DD 
____________ ____________ 
22-AUG-35    22-AUG-35   

की तुलना में ROUND()

TRUNC(date) फ़ंक्शन ROUND(date) . से भिन्न है समारोह। ROUND() फ़ंक्शन कुछ उदाहरणों में तारीख को ऊपर और दूसरों में नीचे की ओर ले जाता है। TRUNC() दूसरी ओर, फ़ंक्शन, बिना गोल किए निर्दिष्ट इकाई की तारीख को छोटा कर देता है।

इस अंतर को प्रदर्शित करने के लिए यहां एक तुलना है:

SELECT 
    TRUNC(DATE '2030-12-31', 'MONTH') AS "Trunc",
    ROUND(DATE '2030-12-31', 'MONTH') AS "Round"
FROM DUAL;

परिणाम:

       Trunc        Round 
____________ ____________ 
01-DEC-30    01-JAN-31   

शून्य मान

यदि दोनों में से कोई भी तर्क null है , परिणाम null . है :

SET NULL 'null';
SELECT 
    TRUNC(null, 'D'),
    TRUNC(date'2020-12-30', null)
FROM DUAL;

परिणाम:

   TRUNC(NULL,'D')    TRUNC(DATE'2020-12-30',NULL) 
__________________ _______________________________ 
              null null                           

डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी SQL SELECT के परिणामस्वरूप एक रिक्त मान उत्पन्न होता है तो एक रिक्त स्थान लौटाता है बयान।

हालांकि, आप SET NULL . का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null वापस किया जाना चाहिए।

अवैध तर्क गणना

कॉलिंग TRUNC() बिना तर्क के त्रुटि उत्पन्न होती है:

SELECT TRUNC()
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT TRUNC()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

और इसे बहुत अधिक तर्कों के साथ कॉल करने से त्रुटि उत्पन्न होती है:

SELECT TRUNC(1, 2, 3)
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT TRUNC(1, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 20
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action:

  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. इस पीएल/एसक्यूएल में क्या गलत है? बाइंड वैरिएबल * घोषित नहीं है

  4. अपडेट ज्वाइन करने में त्रुटि

  5. नॉन-रिपीटेबल रीड और फैंटम रीड में क्या अंतर है?