PostgreSQL के साथ काम करते समय, आप कभी-कभी खुद को उस स्थिति में पा सकते हैं जहां आपको पोस्टग्रेज द्वारा पहचाने जाने वाले टाइमज़ोन की सूची की आवश्यकता होती है।
उदाहरण के लिए, हो सकता है कि आप अपने वर्तमान सत्र के लिए समय क्षेत्र सेट करने का प्रयास कर रहे हों, या आप किसी ऐसे डेटाटाइम फ़ंक्शन का उपयोग कर रहे हों जो आपको समय क्षेत्र में हेरफेर करने की अनुमति देता है।
नीचे दो दृश्य और दो कार्य हैं जो टाइमज़ोन की सूची लौटाते हैं।
pg_timezone_abbrevs देखें
pg_timezone_abbrevs
दृश्य समयक्षेत्र संक्षिप्ताक्षरों की एक सूची प्रदान करता है जो वर्तमान में डेटाटाइम फ़ंक्शंस द्वारा पहचाने जाते हैं।
यहां देखें कि शीर्ष 10 पंक्तियां कैसी दिखती हैं:
SELECT *
FROM pg_timezone_abbrevs
LIMIT 10;
परिणाम:
abbrev | utc_offset | is_dst --------+------------+-------- ACDT | 10:30:00 | t ACSST | 10:30:00 | t ACST | 09:30:00 | f ACT | -05:00:00 | f ACWST | 08:45:00 | f ADT | -03:00:00 | t AEDT | 11:00:00 | t AESST | 11:00:00 | t AEST | 10:00:00 | f AFT | 04:30:00 | f
is_dst
कॉलम इंगित करता है कि यह एक डेलाइट-सेविंग संक्षिप्त नाम है या नहीं।
ध्यान दें कि इस दृश्य की सामग्री तब बदल जाती है जब timezone_abbreviations
रन-टाइम पैरामीटर संशोधित किया गया है।
यह भी ध्यान दें कि पोस्टग्रेज दस्तावेज कहता है:
<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">जबकि अधिकांश टाइमज़ोन संक्षिप्ताक्षर यूटीसी से निश्चित ऑफ़सेट का प्रतिनिधित्व करते हैं, कुछ ऐसे भी हैं जिनका ऐतिहासिक रूप से मूल्य में भिन्नता है (अधिक जानकारी के लिए अनुभाग बी.4 देखें)। ऐसे मामलों में यह दृष्टिकोण उनके वर्तमान अर्थ को प्रस्तुत करता है।
pg_timezone_abbrevs() फ़ंक्शन
आप वैकल्पिक रूप से pg_timezone_abbrevs()
. का उपयोग कर सकते हैं परिणामों को SETOF के रूप में वापस करने के लिए कार्य करता है।
SELECT pg_timezone_abbrevs()
LIMIT 10;
परिणाम:
pg_timezone_abbrevs ------------------- (ACDT,10:30:00,t) (ACSST,10:30:00,t) (ACST,09:30:00,f) (ACT,-05:00:00,f) (ACWST,08:45:00,f) (ADT,-03:00:00,t) (AEDT,11:00:00,t) (AESST,11:00:00,t) (AEST,10:00:00,f) (AFT,04:30:00,f)
यदि आवश्यक हो तो परिणामों को अलग-अलग कॉलम में वापस करने के लिए आप निम्न सिंटैक्स का भी उपयोग कर सकते हैं।
SELECT *
FROM pg_timezone_abbrevs()
LIMIT 10;
परिणाम:
abbrev | utc_offset | is_dst --------+------------+-------- ACDT | 10:30:00 | t ACSST | 10:30:00 | t ACST | 09:30:00 | f ACT | -05:00:00 | f ACWST | 08:45:00 | f ADT | -03:00:00 | t AEDT | 11:00:00 | t AESST | 11:00:00 | t AEST | 10:00:00 | f AFT | 04:30:00 | f
pg_timezone_names देखें
pg_timezone_names
व्यू टाइमज़ोन नामों की एक सूची प्रदान करता है जो SET TIMEZONE
. द्वारा पहचाने जाते हैं , उनके संबद्ध संक्षिप्ताक्षरों, UTC ऑफ़सेट और डेलाइट-सेविंग स्टेटस के साथ।
यहां देखें कि शीर्ष 10 पंक्तियां कैसी दिखती हैं:
SELECT *
FROM pg_timezone_names
LIMIT 10;
परिणाम:
name | abbrev | utc_offset | is_dst ------------------+--------+------------+-------- Indian/Mauritius | +04 | 04:00:00 | f Indian/Chagos | +06 | 06:00:00 | f Indian/Mayotte | EAT | 03:00:00 | f Indian/Christmas | +07 | 07:00:00 | f Indian/Cocos | +0630 | 06:30:00 | f Indian/Maldives | +05 | 05:00:00 | f Indian/Comoro | EAT | 03:00:00 | f Indian/Reunion | +04 | 04:00:00 | f Indian/Mahe | +04 | 04:00:00 | f Indian/Kerguelen | +05 | 05:00:00 | f
is_dst
कॉलम इंगित करता है कि समय क्षेत्र वर्तमान में डेलाइट बचत देख रहा है या नहीं।
इस दृष्टिकोण के लिए, पोस्टग्रेज दस्तावेज कहता है:
<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">
pg_timezone_abbrevs
में दिखाए गए संक्षिप्ताक्षरों के विपरीत , इनमें से कई नाम डेलाइट-सेविंग ट्रांज़िशन दिनांक नियमों का एक सेट दर्शाते हैं। इसलिए, संबंधित जानकारी स्थानीय डीएसटी सीमाओं में बदल जाती है। प्रदर्शित जानकारी की गणना CURRENT_TIMESTAMP
. के वर्तमान मान के आधार पर की जाती है ।
pg_timezone_names() फ़ंक्शन
आप pg_timezone_names()
. का भी उपयोग कर सकते हैं परिणामों को SETOF के रूप में वापस करने के लिए कार्य करता है।
SELECT pg_timezone_names()
LIMIT 10;
परिणाम:
pg_timezone_names --------------------------------- (Indian/Mauritius,+04,04:00:00,f) (Indian/Chagos,+06,06:00:00,f) (Indian/Mayotte,EAT,03:00:00,f) (Indian/Christmas,+07,07:00:00,f) (Indian/Cocos,+0630,06:30:00,f) (Indian/Maldives,+05,05:00:00,f) (Indian/Comoro,EAT,03:00:00,f) (Indian/Reunion,+04,04:00:00,f) (Indian/Mahe,+04,04:00:00,f) (Indian/Kerguelen,+05,05:00:00,f)
परिणामों को अलग-अलग कॉलम में वापस करने के लिए आप निम्न सिंटैक्स का भी उपयोग कर सकते हैं।
SELECT * FROM pg_timezone_names()
LIMIT 10;
परिणाम:
name | abbrev | utc_offset | is_dst ------------------+--------+------------+-------- Indian/Mauritius | +04 | 04:00:00 | f Indian/Chagos | +06 | 06:00:00 | f Indian/Mayotte | EAT | 03:00:00 | f Indian/Christmas | +07 | 07:00:00 | f Indian/Cocos | +0630 | 06:30:00 | f Indian/Maldives | +05 | 05:00:00 | f Indian/Comoro | EAT | 03:00:00 | f Indian/Reunion | +04 | 04:00:00 | f Indian/Mahe | +04 | 04:00:00 | f Indian/Kerguelen | +05 | 05:00:00 | f