Oracle डेटाबेस में डेटाटाइम मान से समय क्षेत्र की जानकारी वापस करने के तीन तरीके नीचे दिए गए हैं।
द EXTRACT()
समारोह
EXTRACT(datetime)
फ़ंक्शन का उपयोग डेटाटाइम मान से विभिन्न डेटाटाइम भागों को निकालने के लिए किया जाता है। इसमें समय क्षेत्र की जानकारी शामिल है।
यहां एक उदाहरण दिया गया है:
SELECT EXTRACT(
TIMEZONE_REGION FROM TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin'
)
FROM DUAL;
परिणाम:
Australia/Darwin
इस मामले में, मैंने TIMEZONE_REGION
. का उपयोग किया है समय क्षेत्र क्षेत्र निकालने का तर्क।
विभिन्न समय क्षेत्र जानकारी निकालने के लिए उपलब्ध तर्क हैं:
TIMEZONE_HOUR
TIMEZONE_MINUTE
TIMEZONE_REGION
TIMEZONE_ABBR
TIMEZONE_OFFSET
. का उपयोग करना भी संभव है तर्क, हालांकि यह इस फ़ंक्शन के लिए Oracle के प्रलेखित सिंटैक्स में प्रकट नहीं होता है।
समय क्षेत्र का संक्षिप्त नाम प्राप्त करने का एक उदाहरण यहां दिया गया है:
SELECT
EXTRACT(TIMEZONE_ABBR FROM TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin')
FROM DUAL;
परिणाम:
ACST
ध्यान दें कि, उपरोक्त समय क्षेत्र तर्कों का उपयोग करते समय, डेटाटाइम मान को डेटा प्रकार TIMESTAMP WITH TIME ZONE
की अभिव्यक्ति के लिए मूल्यांकन करना चाहिए। या TIMESTAMP WITH LOCAL TIME ZONE
।
EXTRACT()
फ़ंक्शन अन्य डेटाटाइम भागों के लिए तर्क भी स्वीकार करता है, जैसे YEAR
, MONTH
, HOUR
, आदि.
TO_CHAR(datetime)
समारोह
हम TO_CHAR(datetime)
. का भी उपयोग कर सकते हैं डेटाटाइम मान से समय क्षेत्र की जानकारी प्राप्त करने के लिए एक वैकल्पिक विधि के रूप में कार्य करें।
यह फ़ंक्शन डेटाटाइम या अंतराल मान को इसके पहले तर्क के रूप में स्वीकार करता है, और प्रारूप मॉडल को इसके दूसरे तर्क के रूप में स्वीकार करता है। फ़ंक्शन तब मान को VARCHAR2
. के डेटा प्रकार में परिवर्तित करता है निर्दिष्ट प्रारूप में।
प्रारूप मॉडल उस प्रारूप को निर्दिष्ट करता है जिसके लिए डेटाटाइम/अंतराल मान वापस करना है। प्रारूप मॉडल में एक या अधिक प्रारूप तत्व होते हैं। यह हमें हमारे वांछित प्रारूप को प्रतिबिंबित करने के लिए परिणामों को सावधानीपूर्वक तैयार करने में सक्षम बनाता है।
यदि हम केवल समय क्षेत्र की जानकारी वापस करना चाहते हैं, तो हम उस विशिष्ट उद्देश्य के लिए प्रारूप तत्वों में से एक का उपयोग कर सकते हैं।
कुछ अलग प्रारूप तत्व हैं जिनका उपयोग हम समय क्षेत्र की जानकारी को डेटाटाइम मान से वापस करते समय कर सकते हैं।
आइए TZR
से शुरू करते हैं प्रारूप तत्व:
SELECT TO_CHAR(
TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin',
'TZR'
)
FROM DUAL;
परिणाम:
Australia/Darwin
यह प्रारूप तत्व समय क्षेत्र क्षेत्र लौटाता है। यदि डेटाटाइम मान में केवल समय क्षेत्र ऑफ़सेट शामिल है, तो इसके बजाय उसे वापस कर दिया जाता है।
TZD
प्रारूप तत्व का उपयोग डेलाइट बचत जानकारी वापस करने के लिए किया जा सकता है। यह संक्षिप्त रूप में समय क्षेत्र की जानकारी देता है।
उदाहरण:
SELECT TO_CHAR(
TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin',
'TZD'
)
FROM DUAL;
परिणाम:
ACST
वैकल्पिक रूप से, हम TZH
. का उपयोग कर सकते हैं और TZM
समय क्षेत्र ऑफ़सेट के आधार पर समय क्षेत्र घंटे और मिनट वापस करने के लिए तत्वों को प्रारूपित करें।
SELECT TO_CHAR(
TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin',
'TZH:TZM'
)
FROM DUAL;
परिणाम:
+09:30
द TZ_OFFSET()
समारोह
TZ_OFFSET()
फ़ंक्शन समय क्षेत्र ऑफ़सेट देता है जो कथन के निष्पादित होने की तिथि के आधार पर तर्क के अनुरूप होता है।
यहां TZ_OFFSET()
का उपयोग करने का एक उदाहरण दिया गया है EXTRACT()
द्वारा लौटाए गए समय क्षेत्र क्षेत्र के आधार पर समय क्षेत्र ऑफ़सेट लौटाने के लिए समारोह:
SELECT TZ_OFFSET(
EXTRACT(TIMEZONE_REGION FROM TIMESTAMP '2035-09-26 10:30:45 Australia/Darwin')
)
FROM DUAL;
परिणाम:
+09:30
हम SESSIONTIMEZONE
. भी पास कर सकते हैं या DBTIMEZONE
करने के लिए TZ_OFFSET()
हमारे वर्तमान सत्र और डेटाबेस के समय क्षेत्र को क्रमशः वापस करने के लिए:
SELECT
TZ_OFFSET(SESSIONTIMEZONE) AS "Session",
TZ_OFFSET(DBTIMEZONE) AS "DB"
FROM DUAL;
परिणाम:
Session DB __________ _________ +10:00 +00:00