Oracle डाटाबेस में, CURRENT_TIMESTAMP()
फ़ंक्शन डेटा प्रकार के मान में सत्र समय क्षेत्र में वर्तमान दिनांक और समय लौटाता है TIMESTAMP WITH TIME ZONE
।
यह LOCALTIMESTAMP
के समान है , सिवाय इसके कि LOCALTIMESTAMP
एक TIMESTAMP
देता है मूल्य।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CURRENT_TIMESTAMP [ (precision) ]
जहां वैकल्पिक precision
तर्क लौटाए गए समय मान की आंशिक दूसरी सटीकता निर्दिष्ट करता है।
बिना किसी तर्क के फ़ंक्शन को कॉल करते समय, कोष्ठक को छोड़ा जाना चाहिए।
उदाहरण
सटीकता निर्दिष्ट किए बिना फ़ंक्शन को कॉल करने का एक उदाहरण यहां दिया गया है:
SELECT CURRENT_TIMESTAMP
FROM DUAL;
परिणाम:
06/AUG/21 08:32:31.165866000 AM AUSTRALIA/BRISBANE
यह उदाहरण मेरे सिस्टम के NLS_DATE_FORMAT
के मान के आधार पर एक प्रारूप में दिनांक प्रदर्शित करता है पैरामीटर (जो वर्तमान में DD/MON/RR
है) ) यह पैरामीटर NLS_TERRITORY
. से अपना मान प्राप्त करता है पैरामीटर (जिसमें से मेरा AUSTRALIA
है )
हमारे पास इन मापदंडों को बदलने का विकल्प है (उदाहरण के लिए, अपने Oracle सत्र में दिनांक स्वरूप कैसे बदलें देखें)।
वैकल्पिक रूप से, हम TO_CHAR()
. जैसे फ़ंक्शन का उपयोग कर सकते हैं परिणाम को एक अलग प्रारूप में वापस करने के लिए।
उदाहरण:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;
परिणाम:
2021-08-06 08:44:39
परिशुद्धता
यहां एक उदाहरण दिया गया है जो सटीकता को निर्दिष्ट करता है। यह लौटाए गए समय मान की भिन्नात्मक दूसरी सटीकता निर्धारित करता है।
SELECT CURRENT_TIMESTAMP(9)
FROM DUAL;
परिणाम:
06/AUG/21 09:02:37.868264000 AM AUSTRALIA/BRISBANE
ध्यान दें कि सटीक तर्क 0 और 9 के बीच की कोई संख्या होनी चाहिए।
जब हम किसी मान को उस सीमा से बाहर पास करते हैं तो क्या होता है:
SELECT CURRENT_TIMESTAMP(10)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT CURRENT_TIMESTAMP(10) FROM DUAL Error at Command Line : 1 Column : 26 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.
परिशुद्धता निर्दिष्ट किए बिना कोष्ठकों को छोड़ना
जैसा कि बताया गया है, CURRENT_TIMESTAMP
पर कॉल करते समय precision
. पास किए बिना तर्क, आपको कोष्ठकों को छोड़ना होगा।
यहां बताया गया है कि जब हम सटीक निर्दिष्ट किए बिना कोष्ठक शामिल करते हैं तो क्या होता है:
SELECT CURRENT_TIMESTAMP()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT CURRENT_TIMESTAMP() FROM DUAL Error at Command Line : 1 Column : 26 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.
हमें पिछले उदाहरण की तरह ही त्रुटि मिलती है। Oracle डेटाबेस 0 और 9 के बीच एक सटीक तर्क की तलाश में है, लेकिन हमने कोई भी पारित नहीं किया।
शून्य तर्क
null
. पास करते समय भी यही त्रुटि होती है :
SELECT CURRENT_TIMESTAMP(null)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT CURRENT_TIMESTAMP(null) FROM DUAL Error at Command Line : 1 Column : 26 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.