अंतराल . के साथ काम करते समय PostgreSQL में डेटा प्रकार, आप अंतराल आउटपुट को स्वरूपित करने के तरीके को बदल सकते हैं।
आपके पास चार प्रारूपों का विकल्प है जिसमें आपके अंतराल आउटपुट हो सकते हैं।
अंतराल प्रकार का आउटपुट स्वरूप निम्न शैलियों में से किसी एक पर सेट किया जा सकता है:
sql_standard
postgres
postgres_verbose
iso_8601
डिफ़ॉल्ट शैली है postgres
।
अपना अंतराल प्रारूप बदलने के लिए, SET intervalstyle
का उपयोग करें आज्ञा।
उदाहरण
निम्नलिखित उदाहरण make_interval()
. के आउटपुट को प्रदर्शित करते हैं विभिन्न आउटपुट शैलियों का उपयोग करते समय।
sql_standard
यह शैली अंतराल शाब्दिक स्ट्रिंग्स के लिए SQL मानक के विनिर्देश के अनुरूप है, यदि अंतराल मान मानक के प्रतिबंधों को पूरा करता है (केवल वर्ष-माह या केवल दिन-समय, सकारात्मक और नकारात्मक घटकों के मिश्रण के बिना)।
अन्यथा आउटपुट एक मानक वर्ष-महीने की शाब्दिक स्ट्रिंग की तरह दिखता है, जिसके बाद एक दिन-समय की शाब्दिक स्ट्रिंग होती है, जिसमें मिश्रित-चिह्न अंतराल को स्पष्ट करने के लिए स्पष्ट संकेत जोड़े जाते हैं।
यहां साल-महीने का उपयोग करने का एक उदाहरण दिया गया है।
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);
परिणाम:
1-2
नीचे एक और उदाहरण है। इस बार मैं वर्ष, महीने, सप्ताह, दिन, घंटे, मिनट और सेकंड निर्दिष्ट करता हूं।
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
परिणाम:
+1-2 +25 +5:06:07
पोस्टग्रेज
postgress
डिफ़ॉल्ट सेटिंग है।
यह शैली 8.4 से पहले पोस्टग्रेज़ रिलीज़ के आउटपुट से मेल खाती है जब DateStyle
पैरामीटर ISO
. पर सेट किया गया था ।
SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
परिणाम:
1 year 2 mons 25 days 05:06:07
postgres_verbose
यह शैली 8.4 से पहले पोस्टग्रेज़ रिलीज़ के आउटपुट से मेल खाती है जब DateStyle
पैरामीटर गैर-ISO
. पर सेट किया गया था आउटपुट।
SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
परिणाम:
@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs
iso_8601
यह शैली ISO 8601 मानक के खंड 4.4.3.2 में वर्णित "डिज़ाइनेटरों के साथ प्रारूप" से मेल खाती है।
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
परिणाम:
P1Y2M25DT5H6M7S