SQL सर्वर में, CAST()
फ़ंक्शन एक डेटा प्रकार की अभिव्यक्ति को दूसरे में परिवर्तित करता है।
यहां उदाहरणों के साथ फ़ंक्शन का त्वरित अवलोकन दिया गया है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CAST ( expression AS data_type [ ( length ) ] )
जहां expression
कन्वर्ट करने के लिए अभिव्यक्ति है, data_type
नया डेटा प्रकार है, और length
नए डेटा प्रकार के लिए एक वैकल्पिक लंबाई है।
उदाहरण
यहां एक स्ट्रिंग को दशमलव के रूप में कास्ट करने का एक उदाहरण दिया गया है:
SELECT CAST('007' AS DECIMAL(5,2));
परिणाम:
7.00
स्ट्रिंग टू डेट
किसी तारीख को स्ट्रिंग कास्ट करने का एक उदाहरण यहां दिया गया है:
SELECT CAST('09 Feb 2030' AS date);
परिणाम:
2030-02-09
इस मामले में CAST()
फ़ंक्शन यह निर्धारित करने में सक्षम था कि कौन से दिनांक भाग हैं क्योंकि मैंने दिनांक को उस प्रारूप में प्रदान किया है जिसे वह पहचानता है।
एक ऐसा मान पास करना जिसे दिनांक के रूप में कास्ट नहीं किया जा सकता एक त्रुटि उत्पन्न करता है:
SELECT CAST('Next Xmas' AS date);
परिणाम:
Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string.
लोकेल
वर्तमान सत्र की भाषा तिथियों की व्याख्या के तरीके में अंतर ला सकती है।
यहां बताया गया है कि ब्रिटिश भाषा का उपयोग करते समय क्या होता है:
SET LANGUAGE British;
SELECT CAST('09/02/2030' AS date);
परिणाम:
2030-02-09
इस मामले में, तारीख को फरवरी के नौवें दिन के रूप में व्याख्यायित किया गया था।
आइए भाषा को us_English
में बदलें :
SET LANGUAGE us_English;
SELECT CAST('09/02/2030' AS date);
परिणाम:
2030-09-02
इस बार इसने तारीख को सितंबर के दूसरे दिन के रूप में व्याख्यायित किया।
स्ट्रिंग संयोजन
स्ट्रिंग के साथ मान को जोड़ने के लिए एक स्ट्रिंग के लिए एक संख्यात्मक मान कास्ट करने का एक उदाहरण यहां दिया गया है:
SELECT 'Likes: ' + CAST(178 AS VARCHAR(10));
परिणाम:
Likes: 178
अगर हम इसे कास्ट नहीं करते हैं तो यहां क्या होगा:
SELECT 'Likes: ' + 178;
परिणाम:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Likes: ' to data type int.
अलग-अलग डेटा प्रकारों के साथ दो मानों को संयोजित करने का प्रयास करते समय, SQL सर्वर को दूसरे के डेटा प्रकार का उपयोग करने के लिए एक मान को परोक्ष रूप से परिवर्तित करने की आवश्यकता होती है, ताकि संयोजन करने से पहले वे दोनों एक ही डेटा प्रकार हों। यह रूपांतरण करने के लिए डेटा प्रकार प्राथमिकता के नियमों का पालन करता है।
SQL सर्वर में, INT
VARCHAR
. की तुलना में डेटा प्रकार की उच्च प्राथमिकता है .
इसलिए, उपरोक्त उदाहरण में, SQL सर्वर स्ट्रिंग को पूर्णांक में बदलने का प्रयास करता है। लेकिन यह विफल हो जाता है क्योंकि स्ट्रिंग को एक पूर्णांक में परिवर्तित नहीं किया जा सकता है।
पाठ को छोटा करना
एक आसान सा ट्रिक जिसे हम CAST()
. के साथ निष्पादित कर सकते हैं फ़ंक्शन लंबे स्ट्रिंग्स को अधिक पठनीय लंबाई में छोटा करना है।
डेटाबेस तालिका से चयनित टेक्स्ट को छोटा करने का एक उदाहरण यहां दिया गया है:
SELECT
ProductName,
CAST(ProductName AS VARCHAR(20)) AS Truncated
FROM Products;
परिणाम:
+---------------------------------+----------------------+ | ProductName | Truncated | |---------------------------------+----------------------| | Left handed screwdriver | Left handed screwdri | | Long Weight (blue) | Long Weight (blue) | | Long Weight (green) | Long Weight (green) | | Sledge Hammer | Sledge Hammer | | Chainsaw | Chainsaw | | Straw Dog Box | Straw Dog Box | | Bottomless Coffee Mugs (4 Pack) | Bottomless Coffee Mu | | Right handed screwdriver | Right handed screwdr | +---------------------------------+----------------------+
अधिक जानकारी
CAST()
फ़ंक्शन CONVERT()
के समान कार्य करता है फ़ंक्शन, और कई डेटा रूपांतरण किसी एक का उपयोग करके किए जा सकते हैं। उस ने कहा, उनके बीच मतभेद हैं।
CAST()
. के लिए Microsoft के दस्तावेज़ देखें और CONVERT()
इस फ़ंक्शन का उपयोग करने के बारे में अधिक विस्तृत जानकारी के लिए।