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

2 कार्य जो Oracle में डेटाटाइम मान से सेकंड लौटाते हैं

नीचे दो फ़ंक्शन दिए गए हैं जिनका उपयोग Oracle डेटाबेस में डेटाटाइम मान से सेकंड के हिस्से को वापस करने के लिए किया जा सकता है।

EXTRACT() समारोह

EXTRACT(datetime) फ़ंक्शन का उपयोग डेटाटाइम मान से विभिन्न डेटाटाइम भागों को निकालने के लिए किया जाता है। इसमें सेकंड का हिस्सा शामिल है।

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

SELECT 
    EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;

परिणाम:

37

यह SECOND है कीवर्ड जो डेटाटाइम मान से सेकंड भाग निकालता है। इसमें कोई भी भिन्नात्मक सेकंड शामिल होंगे:

SELECT 
    EXTRACT(
        SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
        )
FROM DUAL;

परिणाम:

37.123456789

हम अन्य दिनांक भागों को प्रासंगिक कीवर्ड में बदलकर प्राप्त कर सकते हैं। उदाहरण के लिए, YEAR , MONTH , HOUR , MINUTE , आदि.

हम फ़ंक्शन का उपयोग अन्य डेटाटाइम मानों के साथ भी कर सकते हैं, जैसे कि DATE

TO_CHAR(datetime) समारोह

हम TO_CHAR(datetime) . का भी उपयोग कर सकते हैं डेटाटाइम मान से सेकंड घटक प्राप्त करने के लिए वैकल्पिक विधि के रूप में कार्य करें।

यह फ़ंक्शन डेटाटाइम या अंतराल मान को इसके पहले तर्क के रूप में स्वीकार करता है, और प्रारूप मॉडल को इसके दूसरे तर्क के रूप में स्वीकार करता है। फ़ंक्शन तब मान को VARCHAR2 . के डेटा प्रकार में परिवर्तित करता है निर्दिष्ट प्रारूप में।

प्रारूप मॉडल उस प्रारूप को निर्दिष्ट करता है जिसके लिए डेटाटाइम/अंतराल मान वापस करना है। प्रारूप मॉडल में एक या अधिक प्रारूप तत्व होते हैं। यह हमें हमारे वांछित प्रारूप को प्रतिबिंबित करने के लिए परिणामों को सावधानीपूर्वक तैयार करने में सक्षम बनाता है।

यदि हम केवल सेकंड वापस करना चाहते हैं, तो हम उस घटक को वापस करने वाले प्रारूप तत्वों में से एक का उपयोग कर सकते हैं।

कुछ अलग प्रारूप तत्व हैं जिनका उपयोग हम सेकेंड घटक को डेटाटाइम मान से वापस करते समय कर सकते हैं।

सबसे स्पष्ट है SS प्रारूप तत्व:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;

परिणाम:

37

जैसा कि हम देख सकते हैं, SS प्रारूप तत्व केवल सेकंड का हिस्सा देता है, लेकिन आंशिक सेकंड नहीं।

आंशिक सेकंड

यदि हम भिन्नात्मक सेकंड शामिल करना चाहते हैं, तो हम FF . का उपयोग कर सकते हैं प्रारूप तत्व। हम X . का भी उपयोग कर सकते हैं मूलांक वर्ण निर्दिष्ट करने के लिए (संकेत का उपयोग पूर्णांक भाग को भिन्नात्मक भाग से अलग करने के लिए किया जाता है):

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

परिणाम:

37.123456789

FF . में किसी संख्या को जोड़कर सटीकता को सीमित करना भी संभव है भाग:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;

परिणाम:

37.12345

संख्या 1 . हो सकती है 9 . के माध्यम से ।

जबकि आप स्पष्ट रूप से अपना स्वयं का मूलांक वर्ण प्रदान कर सकते हैं - उदाहरण के लिए, एक पूर्ण विराम (. ), X प्रारूप तत्व विभिन्न भाषाओं/क्षेत्रों में पोर्टिंग के लिए उपयोगी हो सकता है।

जब मैंने उपरोक्त उदाहरण चलाए, तो मेरा NLS_TERRITORY पैरामीटर AUSTRALIA . पर सेट किया गया था , जिसके परिणामस्वरूप मूलांक वर्ण पूर्ण विराम हो गया।

जब मैं अपना NLS_TERRITORY बदलता हूं तो यह होता है GERMANY . के लिए पैरामीटर :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

परिणाम:

37,123456789

अब मूलांक वर्ण अल्पविराम है।

मध्यरात्रि के बाद के सेकंड

हम SSSSS . का उपयोग कर सकते हैं आधी रात के बाद के सेकंड वापस करने के लिए:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;

परिणाम:

00065

  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. regexp_substr खाली पदों पर छोड़ देता है

  3. परिणामसेट#getDate() शब्दार्थ

  4. क्लोन ORACLE_HOME

  5. ईएम एसक्यूएल मॉनिटर प्रभाव