कभी-कभी हमें Oracle में डेटाटाइम फ़ंक्शंस का उपयोग करते समय एक समय क्षेत्र निर्दिष्ट करने की आवश्यकता होती है।
लेकिन वहाँ बहुत सारे समय क्षेत्र हैं। हम उन सभी को कैसे याद करते हैं? और हम कैसे जानते हैं कि हमारा सिस्टम किसी दिए गए समय क्षेत्र का समर्थन करता है?
सौभाग्य से, हम V$TIMEZONE_NAMES
. को क्वेरी कर सकते हैं मान्य समय क्षेत्रों की सूची वापस करने के लिए देखें।
सभी समय क्षेत्र की जानकारी प्राप्त करें
निम्नलिखित कोड सभी पंक्तियों और स्तंभों को दृश्य से लौटाता है:
SELECT * FROM V$TIMEZONE_NAMES;
इस दृश्य में बहुत सारी पंक्तियाँ हैं, लेकिन यहाँ पहली 10 पंक्तियाँ कैसी दिखती हैं:
TZNAME TZABBREV CON_ID _____________________ ___________ _________ Africa/Abidjan LMT 0 Africa/Abidjan GMT 0 Africa/Accra LMT 0 Africa/Accra GMT 0 Africa/Accra +0020 0 Africa/Addis_Ababa LMT 0 Africa/Addis_Ababa EAT 0 Africa/Addis_Ababa +0230 0 Africa/Addis_Ababa +0245 0 Africa/Algiers LMT 0 ...
हम देख सकते हैं कि प्रत्येक समय क्षेत्र क्षेत्र के नाम में एक से अधिक संगत संक्षिप्त नाम होते हैं। यह दिन के उजाले की बचत आदि जैसी चीजों को पूरा करता है।
यहाँ एक तालिका है जो बताती है कि कुछ संक्षिप्ताक्षरों का क्या अर्थ है:
समय क्षेत्र संक्षिप्त नाम | <थ>अर्थ|
---|---|
एलएमटी | स्थानीय औसत समय |
पीएमटी | पेरिस माध्य समय |
गीला | पश्चिमी यूरोपीय समय |
पश्चिम | पश्चिमी यूरोपीय ग्रीष्मकालीन समय |
सीईटी | मध्य यूरोप का समय |
CEST | मध्य यूरोप ग्रीष्मकालीन समय |
ईईटी | पूर्वी यूरोप का समय |
ईईएसटी | पूर्वी यूरोप ग्रीष्मकालीन समय |
सिर्फ क्षेत्र के नाम प्राप्त करें
हम DISTINCT
. का उपयोग कर सकते हैं या UNIQUE
बिना डुप्लीकेट के केवल समय क्षेत्र क्षेत्र के नाम वापस करने के लिए क्लॉज।
SELECT DISTINCT TZNAME
FROM V$TIMEZONE_NAMES
ORDER BY TZNAME ASC;
पहली 10 पंक्तियाँ अब कैसी दिखती हैं:
TZNAME _____________________ Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau ...
किसी दिए गए समय क्षेत्र के नाम के लिए सभी संक्षिप्ताक्षर प्राप्त करें
यहां एक क्वेरी का उदाहरण दिया गया है जो किसी दिए गए समय क्षेत्र के नाम के लिए सभी संक्षिप्ताक्षर देता है:
SELECT
TZNAME,
TZABBREV
FROM V$TIMEZONE_NAMES
WHERE TZNAME LIKE '%Sydney%'
ORDER BY TZNAME ASC;
परिणाम:
TZNAME TZABBREV ___________________ ___________ Australia/Sydney LMT Australia/Sydney AEDT Australia/Sydney AEST
समय क्षेत्र फ़ाइलों के बारे में
Oracle डाटाबेस में समय क्षेत्र के नाम समय क्षेत्र फाइलों में समाहित होते हैं।
आप V$TIMEZONE_FILE
. को क्वेरी कर सकते हैं यह देखने के लिए देखें कि वर्तमान में डेटाबेस द्वारा किस समय क्षेत्र फ़ाइल का उपयोग किया जा रहा है।
उदाहरण:
SELECT * FROM V$TIMEZONE_FILE;
परिणाम:
FILENAME VERSION CON_ID __________________ __________ _________ timezlrg_32.dat 32 0
मेरा सिस्टम संस्करण 32 का उपयोग कर रहा है, जो कि Oracle 19c के लिए डिफ़ॉल्ट समय क्षेत्र फ़ाइल है (जो कि मैं उपयोग कर रहा हूं)। यह फ़ाइल निम्न स्थान पर स्थित है:$ORACLE_HOME/oracore/zoneinfo/timezlrg_32.dat
समय क्षेत्र फ़ाइलों के बारे में अधिक जानकारी के लिए समय क्षेत्र फ़ाइल चुनने के लिए Oracle के दस्तावेज़ देखें।