Oracle डेटाबेस हमें रोमन अंकों का उपयोग करके महीने को तारीख से वापस करने की क्षमता प्रदान करता है।
उदाहरण के लिए, यदि महीना अगस्त है, तो इसका दशमलव मान 08 होगा और इसका रोमन अंक समतुल्य VIII होगा।
ऐसा करने का तरीका RM
. का उपयोग करना है या rm
अपने प्रारूप मुखौटा में प्रारूप तत्व। यह महीने को क्रमशः अपरकेस या लोअरकेस में रोमन अंकों का उपयोग करके प्रारूपित करेगा।
दिनांक प्रारूप निर्दिष्ट करना कई स्थानों पर किया जा सकता है।
किसी फ़ंक्शन को कॉल करते समय रोमन अंक निर्दिष्ट करें
TO_CHAR(datetime)
के साथ दिनांक स्वरूपित करते समय रोमन अंकों को निर्दिष्ट करने का एक उदाहरण यहां दिया गया है समारोह:
SELECT TO_CHAR(DATE '2035-08-11', 'DD RM YYYY') FROM DUAL;
परिणाम:
11 VIII 2035
इस मामले में मैंने अपरकेस रोमन अंक निर्दिष्ट किए हैं।
लोअरकेस निर्दिष्ट करने के लिए, बस rm
बदलें करने के लिए rm
:
SELECT TO_CHAR(DATE '2035-08-11', 'DD rm YYYY') FROM DUAL;
परिणाम:
11 viii 2035
ओरेकल में डेटाटाइम प्रारूप तत्वों की सूची देखें प्रारूप तत्वों की पूरी सूची के लिए जिनका उपयोग डेटाटाइम मानों को प्रारूपित करने के लिए किया जा सकता है।
पूरे सत्र के लिए रोमन अंक निर्दिष्ट करें
आप वैकल्पिक रूप से अपने पूरे सत्र के लिए दिनांक प्रारूप निर्धारित कर सकते हैं। यह तब उपयोगी हो सकता है जब आपको तारीख लौटाने वाले बहुत सारे फ़ंक्शन कॉल करने की आवश्यकता हो।
तीन प्रासंगिक पैरामीटर हैं:NLS_DATE_FORMAT
, NLS_TIMESTAMP_FORMAT
, और NLS_TIMESTAMP_TZ_FORMAT
।
इन पैरामीटर में डिफ़ॉल्ट मान होते हैं जो NLS_TERRITORY
. से प्राप्त होते हैं पैरामीटर (जिसका एक डिफ़ॉल्ट मान है जो ऑपरेटिंग सिस्टम पर निर्भर है)। हालांकि, यदि आवश्यक हो, तो आप मौजूदा सत्र के लिए इनमें से किसी भी पैरामीटर को अपडेट कर सकते हैं।
महीने के हिस्से के लिए रोमन अंक शामिल करने वाले दिनांक प्रारूप का उपयोग करने के लिए इन पैरामीटर को अपडेट करने का एक उदाहरण यहां दिया गया है:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD RM YYYY';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD RM YYYY HH12:MI:SSXFF AM';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'DD RM YYYY HH12:MI:SSXFF AM TZR';
परिणाम:
Session altered. Session altered. Session altered.
अब, जब मैं एक फ़ंक्शन को कॉल करता हूं जो डेटाटाइम मान देता है, तो मुझे रोमन अंकों में महीना मिलता है।
उदाहरण:
SELECT TO_CHAR(SYSDATE) FROM DUAL;
परिणाम:
10 VIII 2021
ध्यान दें कि मैंने SYSDATE
. पास कर लिया है करने के लिए TO_CHAR()
.
अगर मैं ऐसा नहीं करता, तो NLS_DATE_FORMAT
पैरामीटर प्रभावी नहीं होता:
SELECT SYSDATE FROM DUAL;
परिणाम:
2021-08-10 20:04:49
यह समस्या अन्य दिनांक स्वरूपों के साथ मौजूद नहीं है। मैंने केवल रोमन अंकों के साथ इसका सामना किया।
एक अधिक स्थायी समाधान
उपरोक्त उदाहरण रोमन अंकों में महीने को वापस करने के लिए अस्थायी समाधान हैं। अधिक स्थायी समाधान के लिए, एनएलएस पैरामीटर को डेटाबेस स्तर पर, इनिशियलाइज़ेशन पैरामीटर फ़ाइल में, या पर्यावरण चर में सेट किया जा सकता है। इनके उदाहरणों के साथ-साथ एक दूसरे के संबंध में उनके पूर्वता क्रम के लिए एनएलएस पैरामीटर और उनकी प्राथमिकताएं निर्धारित करने के तरीके देखें।