समस्या:
आप दिनांक और समय वाली स्ट्रिंग को SQL सर्वर में TIME मान में कनवर्ट करना चाहते हैं।
हमें एक स्ट्रिंग को एक कार्यदिवस के नाम, दिनांक और समय वाली एक TIME मान में बदलने की आवश्यकता है।
समाधान 1:
हम PARSE()
. का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT PARSE('Sunday, 2 February 2020 11:23:11.1134505' AS TIME ) AS time_value;
ये रहा परिणाम:
11:23:11.1134505
चर्चा:
PARSE()
का प्रयोग करें कार्यदिवस के नाम, दिनांक और समय वाली स्ट्रिंग को TIME डेटा प्रकार में बदलने के लिए कार्य करता है। यह फ़ंक्शन स्ट्रिंग को कनवर्ट करने के लिए लेता है, कीवर्ड AS, और एक नया डेटा प्रकार (हमारे उदाहरण में, TIME
) स्ट्रिंग में एक मान होना चाहिए जो इस डेटा प्रकार का प्रतिनिधित्व करता है। हमारे उदाहरण में, स्ट्रिंग 'February 2, 2020 11:23:11.1134505'
एक समय मूल्य संग्रहीत करता है।
ध्यान दें कि समय इस स्ट्रिंग का केवल एक हिस्सा है, जिसमें सप्ताह के दिन का नाम भी शामिल है। CONVERT()
का उपयोग न करें या CAST()
इस मामले में कार्य; वे एक TIME डेटा प्रकार भी लौटाते हैं, लेकिन सप्ताह के दिन के बिना।
यदि आप किसी ऐसी बोली जाने वाली भाषा का उपयोग कर रहे हैं जो सर्वर भाषा से भिन्न है, तो उपयोग करने वाला कीवर्ड और उपयुक्त संस्कृति कोड शामिल करें। पोलिश भाषा के लिए, आप लिखेंगे:
SELECT PARSE('Niedziela, 2 lutego 2020 11:23:11.1134505' AS TIME USING 'pl-PL' ) AS time_value;
संस्कृति पैरामीटर मानों के बारे में अधिक जानकारी के लिए, आधिकारिक SQL सर्वर दस्तावेज़ देखें।
इस मामले में, आपको PARSE()
. का उपयोग करना चाहिए फ़ंक्शन, भले ही इसका सर्वश्रेष्ठ प्रदर्शन न हो। यदि आप एक समय मान का प्रतिनिधित्व करने वाली स्ट्रिंग पर काम कर रहे हैं जो नहीं . है अतिरिक्त डेटा स्टोर करें (जैसे सप्ताह के दिन का नाम), CASE()
. का उपयोग करें समारोह। यहाँ एक उदाहरण है।
समाधान 2:
SELECT CAST('2 February 2020 11:23:11.1134505' AS TIME ) AS time_value;
ये रहा परिणाम:
11:23:11.1134505
कनवर्ट करने के लिए दिनांक और समय वाली स्ट्रिंग T-SQL दिनांक और समय डेटा प्रकार के प्रारूप में होनी चाहिए। आप SQL सर्वर दस्तावेज़ में और अधिक पढ़ सकते हैं।
CAST()
फ़ंक्शन ANSI SQL मानक है और इसका प्रदर्शन CONVERT()
. से बेहतर है या PARSE()
.
अंत में, आप CONVERT()
. का भी उपयोग कर सकते हैं समारोह। अगला उदाहरण देखें।
समाधान 3:
SELECT CONVERT(TIME, '2 Feb, 2020 11:23:11.1134505') AS time_value;
परिणाम:
11:23:11.1134505
CONVERT()
फ़ंक्शन तीन तर्क लेता है:नया डेटा प्रकार, कनवर्ट करने के लिए स्ट्रिंग, और (वैकल्पिक) वांछित प्रारूप। हालांकि, आपको इस फ़ंक्शन का उपयोग केवल तभी करना चाहिए जब आपको यह निर्दिष्ट करने की आवश्यकता हो कि दिनांक और समय डेटा को कैसे स्वरूपित किया जाना चाहिए, क्योंकि इसका प्रदर्शन CAST()
जितना अच्छा नहीं है। ।