PostgreSQL में, आप to_date()
. का उपयोग कर सकते हैं एक स्ट्रिंग को एक तिथि में बदलने के लिए कार्य करता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
to_date(text, text)
जहां पहला तर्क दिनांक का एक स्ट्रिंग प्रतिनिधित्व है, और दूसरा तर्क उस टेम्पलेट को परिभाषित करता है जिसका पहला तर्क उपयोग करता है।
उदाहरण
प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT to_date('10 Feb 2010', 'DD Mon YYYY');
परिणाम:
2010-02-10
टेम्पलेट्स
दूसरा तर्क वह टेम्पलेट प्रदान करता है जिसमें पहला तर्क दिया गया है। इसे कभी-कभी "प्रारूप स्ट्रिंग" के रूप में संदर्भित किया जाता है।
टेम्प्लेट में एक या अधिक टेम्प्लेट पैटर्न होते हैं, और वैकल्पिक रूप से, एक या अधिक टेम्प्लेट पैटर्न संशोधक होते हैं।
टेम्पलेट पैटर्न
पिछले उदाहरण का उपयोग करते हुए, DD
एक टेम्पलेट पैटर्न है और Mon
एक टेम्पलेट पैटर्न है। YYYY
एक टेम्पलेट पैटर्न भी है। टेम्प्लेट बनाने के लिए इन सभी को मिला दिया गया था।
आप प्रत्येक टेम्पलेट पैटर्न को आवश्यकतानुसार इधर-उधर कर सकते हैं। और आप अलग-अलग टेम्पलेट पैटर्न का पूरी तरह से उपयोग कर सकते हैं।
यहां कुछ और उदाहरण दिए गए हैं जो एक ही तिथि का उपयोग करते हैं, लेकिन विभिन्न स्वरूपों में (और इसलिए, विभिन्न टेम्पलेट्स का उपयोग करते हुए)।
\x
SELECT
to_date('10 Feb 2010', 'DD Mon YYYY') AS "DD Mon YYYY",
to_date('Feb 10 2010', 'Mon DD YYYY') AS "Mon DD YYYY",
to_date('10/02/2010', 'DD/MM/YYYY') AS "DD/MM/YYYY",
to_date('02/10/2010', 'MM/DD/YYYY') AS "MM/DD/YYYY",
to_date('02-10-2010', 'MM-DD-YYYY') AS "MM-DD-YYYY",
to_date('02102010', 'MMDDYYYY') AS "MMDDYYYY",
to_date('02-10-10', 'MM-DD-YY') AS "MM-DD-YY";
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
DD Mon YYYY | 2010-02-10 Mon DD YYYY | 2010-02-10 DD/MM/YYYY | 2010-02-10 MM/DD/YYYY | 2010-02-10 MM-DD-YYYY | 2010-02-10 MMDDYYYY | 2010-02-10 MM-DD-YY | 2010-02-10
इसलिए वे सभी एक ही तिथि का उपयोग करते हैं, लेकिन तिथि विभिन्न स्वरूपों में प्रदान की जाती है। यह टेम्प्लेट का काम स्पष्ट रूप से पोस्टग्रेज़ को निर्दिष्ट करना है कि दिनांक किस प्रारूप में प्रदान किया गया है।
जैसा कि आप शायद कल्पना कर सकते हैं, यदि हम टेम्पलेट प्रदान नहीं करते हैं, तो कुछ तिथियों की गलत तरीके से व्याख्या की जा सकती है, खासकर यदि तिथि अपने प्रारूप के लिए एक अलग स्थान का उपयोग करती है।
उदाहरण के लिए, 01/03/2010 को लोकेल के आधार पर मार्च के पहले या तीसरे जनवरी के रूप में व्याख्या किया जा सकता है।
टेम्पलेट पैटर्न संशोधक
कभी-कभी आपको टेम्प्लेट में टेम्प्लेट पैटर्न संशोधक जोड़ने की भी आवश्यकता हो सकती है।
उदाहरण के लिए, यदि आपकी तिथि एक क्रमसूचक संख्या प्रत्यय का उपयोग करती है, तो आपको यह सुनिश्चित करना होगा कि इसकी व्याख्या इस प्रकार की गई है।
SELECT
to_date('10th Feb 2010', 'DDth Mon YYYY') AS "10th Feb 2010",
to_date('01st Feb 2010', 'DDth Mon YYYY') AS "01st Feb 2010",
to_date('03rd Feb 2010', 'DDth Mon YYYY') AS "03rd Feb 2010";
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
10th Feb 2010 | 2010-02-10 01st Feb 2010 | 2010-02-01 03rd Feb 2010 | 2010-02-03
यदि मैंने टेम्प्लेट पैटर्न संशोधक का उपयोग नहीं किया होता, तो उन तिथियों का उपयोग करते समय मुझे एक त्रुटि प्राप्त होती।
उदाहरण के लिए यहां एक उदाहरण दिया गया है।
SELECT to_date('10th Feb 2010', 'DD Mon YYYY');
परिणाम:
ERROR: invalid value "th" for "Mon" DETAIL: The given value did not match any of the allowed values for this field.
टेम्पलेट पैटर्न और संशोधक की पूरी सूची
पोस्टग्रेज में बहुत अधिक टेम्पलेट पैटर्न और संशोधक शामिल हैं।
इनका उपयोग दिनांक/समय मानों को स्वरूपित करते समय भी किया जा सकता है (उदाहरण के लिए to_char()
. का उपयोग करते समय टाइमस्टैम्प को एक स्ट्रिंग में बदलने के लिए कार्य करता है)।
पूरी सूची के लिए PostgreSQL में दिनांक/समय स्वरूपण के लिए टेम्पलेट पैटर्न और संशोधक देखें।