PostgreSQL में, make_timestamptz()
फ़ंक्शन आपको समय क्षेत्र के साथ टाइमस्टैम्प . बनाने की अनुमति देता है अपने वर्ष, महीने, दिन, घंटे, मिनट और सेकंड फ़ील्ड के साथ-साथ एक वैकल्पिक समय क्षेत्र फ़ील्ड से।
सिंटैक्स
फ़ंक्शन में निम्न सिंटैक्स है:
make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])
जहां year
, month
, और day
दिनांक के वर्ष, महीने और दिन का प्रतिनिधित्व करने वाले पूर्णांक हैं, और hour
घंटे का हिस्सा है, min
मिनट का हिस्सा है, और sec
सेकंड का हिस्सा है।
घंटे और मिनट पूर्णांक . के रूप में दिए गए हैं , सेकंड दोहरी सटीकता . के रूप में प्रदान किए जाते हैं ।
वैकल्पिक timezone
तर्क समयक्षेत्र के लिए है। यदि यह निर्दिष्ट नहीं है, तो वर्तमान समय क्षेत्र का उपयोग किया जाता है।
परिणाम समय क्षेत्र के साथ समय . के रूप में लौटाया जाता है ।
उदाहरण
प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT make_timestamptz(1999, 03, 14, 10, 35, 12.15);
परिणाम:
1999-03-14 10:35:12.15+10
इस मामले में मैंने समय क्षेत्र प्रदान नहीं किया था, इसलिए इसने वर्तमान समय क्षेत्र का उपयोग किया।
हम निम्नलिखित क्वेरी के साथ रिटर्न प्रकार को सत्यापित कर सकते हैं।
SELECT pg_typeof(make_timestamptz(1999, 03, 14, 10, 35, 12.15));
परिणाम:
timestamp with time zone
pg_typeof()
फ़ंक्शन अपने तर्क का डेटा प्रकार देता है, और इसलिए मैंने make_timestamptz()
. पास किया तर्क के रूप में।
समयक्षेत्र निर्दिष्ट करें
इस उदाहरण में मैं स्पष्ट रूप से एक समय क्षेत्र प्रदान करता हूं।
SELECT make_timestamptz(1999, 03, 14, 10, 35, 12.15, 'Indian/Mauritius');
परिणाम:
1999-03-14 16:35:12.15+10
यहां एक और उदाहरण दिया गया है, लेकिन विभिन्न समयक्षेत्र मानों के साथ।
\x
SELECT
make_timestamptz(2000, 01, 01, 00, 01, 00.00, 'ACDT'),
make_timestamptz(2000, 01, 01, 00, 01, 00.00, 'ACST'),
make_timestamptz(2000, 01, 01, 00, 01, 00.00, 'ACT'),
make_timestamptz(2000, 01, 01, 00, 01, 00.00, '+01'),
make_timestamptz(2000, 01, 01, 00, 01, 00.00, '-01'),
make_timestamptz(2000, 01, 01, 00, 01, 00.00, 'NZ');
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
make_timestamptz | 1999-12-31 23:31:00+10 make_timestamptz | 2000-01-01 00:31:00+10 make_timestamptz | 2000-01-01 15:01:00+10 make_timestamptz | 2000-01-01 09:01:00+10 make_timestamptz | 2000-01-01 11:01:00+10 make_timestamptz | 1999-12-31 21:01:00+10
इस उदाहरण में मैंने \x
. का प्रयोग किया है परिणामों को पढ़ने में आसान बनाने के लिए विस्तारित प्रदर्शन ("ऊर्ध्वाधर आउटपुट" के रूप में भी जाना जाता है) को सक्षम करने के लिए।
\x
दर्ज करना विस्तारित डिस्प्ले को टॉगल करता है (यानी यह इसे सक्षम और अक्षम करता है)।
मान्य टाइमज़ोन की सूची प्राप्त करने के लिए PostgreSQL द्वारा समर्थित टाइमज़ोन की सूची लौटाएं देखें।
सीमा से बाहर
यदि कोई तर्क उसके दिनांक भाग के लिए संभावित मानों की सीमा से बाहर है, तो आपको "सीमा से बाहर" त्रुटि मिलेगी।
SELECT make_timestamptz(1999, 03, 32, 10, 35, 12.15);
परिणाम:
ERROR: date field value out of range: 1999-03-32
इस मामले में दिन 32 था, जो सीमा से बाहर है, और इसलिए संदेश ने समझाया कि दिनांक फ़ील्ड मान सीमा से बाहर था।
यदि केवल समय फ़ील्ड मान सीमा से बाहर है, तो त्रुटि उसी के अनुसार लिखी जाती है।
SELECT make_timestamptz(1999, 03, 30, 10, 61, 12.15);
परिणाम:
ERROR: time field value out of range: 10:61:12.15
इस मामले में min
तर्क 61 है, जो सीमा से बाहर है।
बिना टाइमज़ोन के टाइमस्टैम्प
टाइमज़ोन के बिना टाइमस्टैम्प बनाने के लिए, make_timestamp()
. का उपयोग करें समारोह।