समस्या:
आप SQL सर्वर में किसी अन्य प्रारूप में दिनांक मान प्रदर्शित करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में company
कॉलम में डेटा के साथ आईडी (प्राथमिक कुंजी), नाम , और प्रारंभ_दिनांक ।
आईडी | <थ>नाम <थ>प्रारंभ_दिनांक||
---|---|---|
1 | लिसा बैंक | 2019-01-20 |
2 | क्रेडिट वित्तीय संस्थान | 2018-03-14 |
3 | विलियम्स होल्डिंग | 2019-10-28 |
प्रत्येक कंपनी के लिए, आइए उनकी प्रारंभ तिथि को एक नए प्रारूप 'YYYY/MM/DD' में बदलें, जहां YYYY 4-अंकीय वर्ष है, MM 2-अंकीय महीना है, और DD 2-अंकीय दिन है।पी>
समाधान 1:
हम CONVERT()
. का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT CONVERT(NVARCHAR, start_date, 111 ) AS new_date FROM company;
ये रहा परिणाम:
नाम | <थ>प्रारंभ_दिनांक|
---|---|
लिसा बैंक | 2019/01/20 |
क्रेडिट वित्तीय संस्थान | 2018/03/14 |
विलियम्स होल्डिंग | 2019/10/28 |
चर्चा:
CONVERT()
का उपयोग करें किसी दिए गए कॉलम या एक्सप्रेशन से किसी दिनांक के प्रारूप को बदलने के लिए कार्य करता है।
यह फ़ंक्शन तीन तर्क लेता है:
- नया डेटा प्रकार (हमारे उदाहरण में, NVARCHAR)।
- एक एक्सप्रेशन या कॉलम नाम जिसमें फॉर्मेट करने की तारीख होती है (हमारे उदाहरण में,
start_date
कॉलम)। - एक वैकल्पिक शैली कोड, एक पूर्णांक के रूप में। (हमारे उदाहरण में, '111' शैली भागों को अलग करने के लिए स्लैश का उपयोग करके दिनांक प्रदर्शित करती है।)
नीचे दी गई तालिका सबसे लोकप्रिय दिनांक शैली कोड प्रस्तुत करती है:
कोड | <थ>विवरण|
---|---|
101 | 11/30/2019 |
102 | 2019.11.30 |
103 | 30/11/2019 |
104 | 30.11.2019 |
105 | 30-11-2019 |
110 | 11-30-2019 |
111 | 2019/11/30 |
प्रारूप शैलियों की एक विस्तृत सूची टी-एसक्यूएल दस्तावेज़ीकरण में पाई जा सकती है।
उपरोक्त क्वेरी ने लिसा बैंक की दिनांक 2019-01-20 के प्रारूप को '2019/01/20' दिनांक वाली स्ट्रिंग में बदल दिया।
समाधान 2:
SQL सर्वर 2012 और बाद में, आप FORMAT()
. का उपयोग कर सकते हैं दिनांक/समय स्वरूपों को बदलने के लिए कार्य। वांछित प्रारूप निर्दिष्ट करने के लिए आप नीचे दिए गए वर्णों का उपयोग करते हैं:
पैटर्न | <थ>विवरण|
---|---|
dd | दिन 01-31 की सीमा में |
एमएम | माह 01-12 की सीमा में |
वर्ष | 2-अंकीय वर्ष |
yyyy | 4 अंकों का वर्ष |
HH | 00-23 की सीमा में घंटा |
मिमी | 00-59 की सीमा में मिनट |
ss | 00-59 की सीमा में सेकंड |
यहाँ वह क्वेरी है जिसे आप FORMAT() का उपयोग करके लिखेंगे:
SELECT FORMAT(start_date, ‘yyyy-MM-dd’ ) AS new_date FROM company;
पहला तर्क पुन:स्वरूपित करने के लिए डेटाटाइम/दिनांक/समय मान है। दूसरा एक स्ट्रिंग है जिसमें नए प्रारूप का पैटर्न होता है। यह फ़ंक्शन एक NVARCHAR डेटा प्रकार देता है। FORMAT()
का उपयोग करें यदि आप SQL Server 2012 या उसके बाद के संस्करण पर काम करते हैं और दिनांक/समय को स्वरूपित दिनांक/समय वाले स्ट्रिंग में कनवर्ट करना चाहते हैं।