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

Oracle में तिथियों से अग्रणी शून्य कैसे निकालें?

Oracle डेटाबेस में, आप fm . का उपयोग कर सकते हैं (फिल मोड) प्रारूप संशोधक किसी भी प्रमुख शून्य को दबाने के लिए जिसे किसी तिथि पर लागू किया जा सकता है। यह प्रारूप संशोधक पैडिंग को दबा देता है, जिसमें प्रमुख शून्य और पीछे वाले रिक्त स्थान शामिल हैं।

fm का उपयोग करने के लिए प्रारूप संशोधक, तिथियों को कैसे स्वरूपित किया जाना चाहिए, यह निर्दिष्ट करते समय इसे अपने प्रारूप मॉडल में शामिल करें। उदाहरण के लिए TO_CHAR() . का उपयोग करते समय दिनांकों को प्रारूपित करने के लिए कार्य करता है, या NLS पैरामीटर जैसे NLS_DATE_FORMAT . में कार्य करता है आपके वर्तमान सत्र के लिए दिनांक प्रारूप सेट करते समय पैरामीटर।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

SELECT 
    TO_CHAR(DATE '2009-08-01', 'DD-MM-YY') AS "Without fm",
    TO_CHAR(DATE '2009-08-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;

परिणाम:

   Without fm    With fm 
_____________ __________ 
01-08-09      1-8-9     

हम देख सकते हैं कि मूल परिणाम (fm . के बिना) संशोधक) सभी दिनांक भागों के लिए अग्रणी शून्य देता है। इस मामले में, fm संशोधक ने सभी तीन तारीख भागों में अग्रणी शून्य को दबा दिया।

fm संशोधक केवल परिणाम को प्रभावित करता है यदि परिणाम में वास्तव में अग्रणी शून्य हैं।

यहां एक तारीख दी गई है जिसमें दो अंक लेने वाले तारीख के हिस्से शामिल हैं, और इसलिए उनके पास अग्रणी शून्य नहीं है:

SELECT 
    TO_CHAR(DATE '2029-12-01', 'DD-MM-YY') AS "Without fm",
    TO_CHAR(DATE '2029-12-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;

परिणाम:

   Without fm    With fm 
_____________ __________ 
01-12-29      1-12-29    

केवल कुछ दिनांक भागों में भरण मोड कैसे निर्दिष्ट करें

उपरोक्त उदाहरण ने सभी दिनांक भागों पर अग्रणी शून्य को दबा दिया। अग्रणी शून्य को दिन, महीने और वर्ष से हटा दिया गया था। ऐसा इसलिए है, क्योंकि जब हम एक fm . डालते हैं प्रारूप मॉडल की शुरुआत में, यह सभी . को दबा देता है परिणाम में बाद में अग्रणी शून्य।

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

SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-MM-fmYY')
FROM DUAL;

परिणाम:

1-8-09

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

जब हम तीन fm . को शामिल करते हैं तो यहां क्या होता है संशोधक - प्रत्येक तिथि भाग से पहले एक:

SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-fmMM-fmYY')
FROM DUAL;

परिणाम:

1-08-9

तो इस मामले में, fm संशोधक मूल रूप से सक्षम किया गया था, फिर अक्षम किया गया, फिर सक्षम किया गया।

एनएलएस पैरामीटर

आप अपने NLS पैरामीटर में भरण मोड भी निर्दिष्ट कर सकते हैं, जैसे NLS_DATE_FORMAT आपके वर्तमान सत्र के लिए दिनांक प्रारूप सेट करते समय पैरामीटर।

उदाहरण:

ALTER SESSION SET NLS_DATE_FORMAT = 'fmDD-MM-fmRR';

SELECT DATE '2009-08-07' FROM DUAL;

परिणाम:

7-8-09

  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. केकपीएचपी 2.0 के साथ ओरेकल डेटाबेस का उपयोग करना

  3. WSJDBCConnection Oracle jdbc कनेक्शन प्रकार की वस्तुओं को लपेटता नहीं है

  4. तालिका में सभी पंक्तियों को अद्यतन करने का प्रभावी तरीका

  5. Oracle में UPPER () फ़ंक्शन