PostgreSQL प्रलेखन के अनुसार, to_timestamp()
called नामक दो कार्य हैं :
- एक यूनिक्स युग को टाइमस्टैम्प में परिवर्तित करता है। यूनिक्स युग 1970-01-01 00:00:00+00 के बाद से सेकंड की संख्या है।
- दूसरा स्ट्रिंग को टाइमस्टैम्प में बदल देता है।
अधिक विशेष रूप से, प्रत्येक फ़ंक्शन मान को समय क्षेत्र के साथ टाइमस्टैम्प . में परिवर्तित करता है मूल्य।
हालांकि पोस्टग्रेज दस्तावेज उन्हें दो अलग-अलग to_timestamp()
. के रूप में प्रस्तुत करता है फ़ंक्शन, मैं उन्हें इस तरह प्रस्तुत करता हूं जैसे कि वे एक फ़ंक्शन हैं जो या तो एक तर्क को स्वीकार करता है, या दो।
सिंटैक्स
आप उपयोग कर सकते हैं to_timestamp()
निम्नलिखित तरीकों से:
to_timestamp(double precision)
to_timestamp(text, text)
पहले सिंटैक्स का उपयोग करते हुए, तर्क को दोहरी सटीकता . के रूप में प्रदान किया जाता है मान, और यह युग मान है, डबल परिशुद्धता में आप टाइमस्टैम्प में कनवर्ट करना चाहते हैं।
दूसरे सिंटैक्स का उपयोग करते हुए, पहला तर्क दिनांक है, और दूसरा तर्क प्रारूप स्ट्रिंग है।
यूनिक्स युग को रूपांतरित करें
युग को टाइमस्टैम्प में बदलने का तरीका दिखाने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT to_timestamp(1658792421);
परिणाम:
2022-07-26 09:40:21+10
मेरे मामले में टाइमज़ोन ऑफ़सेट +10 है और यही वह है जो लौटाया गया है।
आंशिक सेकंड
यहाँ आंशिक सेकंड के साथ एक उदाहरण दिया गया है।
SELECT to_timestamp(1658792421.123456);
परिणाम:
2022-07-26 09:40:21.123456+10
फ़ॉर्मेटिंग
दिनांक मान को प्रारूपित करने के लिए दूसरे सिंटैक्स का उपयोग करने का एक उदाहरण यहां दिया गया है।
SELECT to_timestamp('21 Oct 2022', 'DD Mon YYYY');
परिणाम:
2022-10-21 00:00:00+10
दूसरा तर्क यह इंगित करने के लिए प्रदान किया जाता है कि पहला तर्क कैसे स्वरूपित किया गया है।
इस बिंदु को और स्पष्ट करने के लिए यहां एक और प्रारूप दिया गया है।
SELECT to_timestamp('21/10/2022', 'DD/MM/YYYY');
परिणाम:
2022-10-21 00:00:00+10
यदि दूसरे तर्क का प्रारूप पहले तर्क के प्रारूप से मेल नहीं खाता है, तो आप एक त्रुटि के साथ समाप्त हो सकते हैं।
उदाहरण के लिए:
SELECT to_timestamp('21 October 2022', 'DD Mon YYYY');
परिणाम:
ERROR: invalid value "ober" for "YYYY" DETAIL: Value must be an integer.
प्रारूप स्ट्रिंग (दूसरा तर्क) वैकल्पिक संशोधक के साथ कोई भी टेम्पलेट पैटर्न हो सकता है।
यहां टेम्प्लेट पैटर्न और संशोधक की पूरी सूची है जिसका उपयोग आप इस फ़ंक्शन के साथ कर सकते हैं।
वापसी का प्रकार
जैसा कि बताया गया है, वापसी का प्रकार समय क्षेत्र के साथ टाइमस्टैम्प . है . हम इसे pg_typeof()
. से सत्यापित कर सकते हैं समारोह।
SELECT pg_typeof(to_timestamp(1658792421.123456));
परिणाम:
timestamp with time zone
तारीख के हिस्सों को निकालना
आप टाइमस्टैम्प मान से दिनांक भागों को निकालने के लिए विभिन्न विधियों का उपयोग कर सकते हैं।
उदाहरण के लिए, आप extract()
. का उपयोग कर सकते हैं समारोह।
SELECT extract('month' from to_timestamp(1658792421));
परिणाम:
7
और आप to_char()
. का उपयोग कर सकते हैं फ़ंक्शन यदि आपको कुछ ऐसा करने की आवश्यकता है, तो महीने की संख्या के बजाय महीने का नाम प्रदर्शित करें।
SELECT to_char(to_timestamp(1658792421), 'Month');
परिणाम:
July
और यहाँ यह फ़ॉर्मेटिंग सिंटैक्स का उपयोग कर रहा है।
SELECT to_char(to_timestamp('1st Oct 2022', 'FMDDth Mon YYYY'), 'Month');
परिणाम:
October
अगर आपके पास केवल महीने की संख्या है, तो आप महीने की संख्या को महीने के नाम में बदलने के लिए निम्न उदाहरण का उपयोग कर सकते हैं।
SELECT to_char(to_timestamp(3::text, 'MM'), 'Month');
परिणाम:
March
और इसके विपरीत (महीने के नाम को महीने की संख्या में बदलें)।
निम्नलिखित उदाहरण में मैं date_part()
. का उपयोग करके महीने की संख्या निकालता हूं extract()
. के विकल्प के रूप में ।
SELECT date_part('month', (to_timestamp('Mar 2022', 'Mon')));
परिणाम:
3