SQL सर्वर में, आप CAST()
. का उपयोग कर सकते हैं एक डेटा प्रकार की अभिव्यक्ति को दूसरे में बदलने के लिए कार्य करता है। यह फ़ंक्शन लगभग CONVERT()
. के समान ही कार्य करता है फ़ंक्शन, सिवाय इसके कि सिंटैक्स थोड़ा अलग है (और CAST()
style
को स्वीकार नहीं करता तर्क)।
इसलिए यदि आपको किसी स्ट्रिंग को दिनांक/समय मान में बदलने की आवश्यकता है, तो आप CONVERT()
का उपयोग कर सकते हैं फ़ंक्शन या CAST()
समारोह।
और अगर आपको उन दो कार्यों का उपयोग करते समय कोई त्रुटि मिलती है, तो PARSE()
फ़ंक्शन वही हो सकता है जिसकी आपको आवश्यकता है।
इस लेख में CAST()
. का उपयोग करने वाले उदाहरण हैं समारोह।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CAST ( expression AS data_type [ ( length ) ] )
इन तर्कों को इस प्रकार परिभाषित किया गया है:
expression
- कोई मान्य अभिव्यक्ति।
data_type
- लक्ष्य डेटा प्रकार। इसमें शामिल है xml , बिगिंट , और sql_variant . उपनाम डेटा प्रकारों का उपयोग नहीं किया जा सकता है।
length
- एक वैकल्पिक पूर्णांक जो लक्ष्य डेटा प्रकार की लंबाई निर्दिष्ट करता है। डिफ़ॉल्ट मान
30
है ।
उदाहरण 1 - दिनांक डेटा प्रकार में कनवर्ट करें
इस उदाहरण में, हम स्ट्रिंग को एक तारीख . में बदलते हैं डेटा प्रकार (हम इसे date
. का उपयोग करके निर्दिष्ट करते हैं दूसरे तर्क के रूप में)।
SELECT CAST('20 Dec 2018' AS date) AS Result;
परिणाम:
+------------+ | Result | |------------| | 2018-12-20 | +------------+
ठीक उसी तरह जैसे CONVERT()
. के साथ स्ट्रिंग को ऐसी शैली में होना चाहिए जो निर्दिष्ट डेटा प्रकार में परिवर्तित होने में सक्षम हो, अन्यथा आपको एक त्रुटि मिलेगी:
SELECT CAST('Homer' AS date) AS Result;
परिणाम:
Conversion failed when converting date and/or time from character string.
उदाहरण 2 - डेटाटाइम डेटा प्रकार में कनवर्ट करें
इस उदाहरण में हम डेटाटाइम . में कनवर्ट करते हैं डेटा प्रकार:
SELECT CAST('20 Dec 2018' AS datetime) AS Result;
परिणाम:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 00:00:00.000 | +-------------------------+
आप तारीख के साथ समय भी निर्दिष्ट कर सकते हैं:
SELECT CAST('2pm 20 Dec 2018' AS datetime) AS Result;
परिणाम:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 14:00:00.000 | +-------------------------+
उदाहरण 3 - डेटाटाइम 2 डेटा प्रकार में कनवर्ट करें
यहां हम datetime2 . में कनवर्ट करते हैं डेटा प्रकार:
SELECT CAST('20 Dec 2018' AS datetime2) AS Result;
परिणाम:
+-----------------------------+ | Result | |-----------------------------| | 2018-12-20 00:00:00.0000000 | +-----------------------------+
उदाहरण 4 - डेटाटाइम ऑफ़सेट डेटा प्रकार में कनवर्ट करें
इस उदाहरण में हम डेटाटाइमऑफ़सेट . में कनवर्ट करते हैं डेटा प्रकार:
SELECT CAST('20 Dec 2018' AS datetimeoffset) AS Result;
परिणाम:
+------------------------------------+ | Result | |------------------------------------| | 2018-12-20 00:00:00.0000000 +00:00 | +------------------------------------+
उदाहरण 5 - छोटे डेटा प्रकार में कनवर्ट करें
यहां हम स्मॉलडेटटाइम . में कनवर्ट करते हैं डेटा प्रकार:
SELECT CAST('20 Dec 2018' AS smalldatetime) AS Result;
परिणाम:
+---------------------+ | Result | |---------------------| | 2018-12-20 00:00:00 | +---------------------+
उदाहरण 6 - समय डेटा प्रकार में कनवर्ट करें
इस उदाहरण में हम समय . में रूपांतरित होते हैं डेटा प्रकार:
SELECT CAST('20 Dec 2018' AS time) AS Result;
परिणाम:
+----------+ | Result | |----------| | 00:00:00 | +----------+
उस स्थिति में, हमने एक तिथि निर्दिष्ट की थी, लेकिन एक समय नहीं, इसलिए यह 00:00:00
के रूप में वापस आ गया। . यहां एक और उदाहरण दिया गया है जहां हम वास्तव में एक समय निर्दिष्ट करते हैं:
SELECT CAST('2pm' AS time) AS Result;
परिणाम:
+----------+ | Result | |----------| | 14:00:00 | +----------+
लेकिन अगर हम तारीख जोड़ते हैं, तो हमें एक त्रुटि मिलती है (पहले के उदाहरण के विपरीत जब हम डेटाटाइम में परिवर्तित होते हैं ):
SELECT CAST('2pm 20 Dec 2018' AS time) AS Result;
परिणाम:
Conversion failed when converting date and/or time from character string.
तो इस मामले में आपको डेटाटाइम . में कनवर्ट करना होगा या स्मॉलडेटटाइम ।
उदाहरण 7 - तारीख को छोड़ना
यदि आप दिनांक को डेटाटाइम . में कनवर्ट करते समय छोड़ देते हैं या स्मॉलडेटटाइम डेटा प्रकार, यह लौटाएगा 1900-01-01
तिथि के अनुसार:
SELECT CAST('2pm' AS datetime) AS Result;
परिणाम:
+-------------------------+ | Result | |-------------------------| | 1900-01-01 14:00:00.000 | +-------------------------+
यदि आप CONVERT()
. का उपयोग करने के लिए उपयोग करना पसंद करते हैं फ़ंक्शन, इन स्ट्रिंग को दिनांक/समय पर देखें CONVERT()
ऊपर के समान उदाहरणों का उपयोग करते हुए उदाहरण।
साथ ही, जैसा कि उल्लेख किया गया है, यदि आपको किसी स्ट्रिंग को दिनांक में बदलने का प्रयास करते समय कोई त्रुटि मिलती है, तो PARSE()
आज़माएं। इसके बजाय कार्य करें। यह कुछ मामलों में काम करेगा जहां CAST()
नहीं।