SQL सर्वर में, TRY_CONVERT() फ़ंक्शन बहुत हद तक CONVERT() . के समान है फ़ंक्शन, सिवाय इसके कि TRY_CONVERT() रूपांतरण विफल होने पर कोई त्रुटि नहीं लौटाता (CONVERT() करता है)।
इसके बजाय, TRY_CONVERT() फ़ंक्शन NULL लौटाता है यदि रूपांतरण सफल नहीं होता है।
हालांकि कुछ अवसर ऐसे भी होते हैं, जहां TRY_CONVERT() एक त्रुटि लौटाएगा।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )
जहां expression कन्वर्ट करने के लिए अभिव्यक्ति है, data_type नया डेटा प्रकार है, और length नए डेटा प्रकार के लिए एक वैकल्पिक लंबाई है।
वैकल्पिक style तर्क का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि फ़ंक्शन को expression . का अनुवाद कैसे करना चाहिए बहस। उदाहरण के लिए, आप इस तर्क का उपयोग दिनांक स्वरूप निर्दिष्ट करने के लिए कर सकते हैं।
उदाहरण 1 - रूपांतरण सफल होता है
यहाँ एक स्ट्रिंग को दशमलव में बदलने का एक उदाहरण दिया गया है:
SELECT TRY_CONVERT(DECIMAL(5,2), '007'); परिणाम:
7.00
इस मामले में, रूपांतरण सफल हुआ।
उदाहरण 2 - रूपांतरण विफल और रिटर्न NULL
यहां रूपांतरण विफल होने और NULL का एक उदाहरण दिया गया है लौटाया जा रहा है:
SELECT TRY_CONVERT(DECIMAL(5,2), 'Three'); परिणाम:
NULL
रूपांतरण विफल रहा, और इसलिए NULL लौटा दिया गया।
तुलना के रूप में, जब हम CONVERT() . का उपयोग करते हैं तो क्या होता है TRY_CONVERT() . के बजाय :
SELECT CONVERT(DECIMAL(5,2), 'Three'); परिणाम:
Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric.
उदाहरण 3 - रूपांतरण विफल हो जाता है और एक त्रुटि देता है
कुछ अवसर ऐसे होते हैं जहां TRY_CONVERT() एक त्रुटि लौटाएगा।
यदि रूपांतरण की स्पष्ट रूप से अनुमति नहीं है, तो यह एक त्रुटि देता है:
SELECT TRY_CONVERT(xml, 10); परिणाम:
Msg 529, Level 16, State 2, Line 1 Explicit conversion from data type int to xml is not allowed.
उदाहरण 4 - style तर्क
हम वैकल्पिक style . का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि अभिव्यक्ति का अनुवाद कैसे किया जाना चाहिए।
उदाहरण:
SET LANGUAGE British;
SELECT
TRY_CONVERT(date, '09/02/2030') AS "British",
TRY_CONVERT(date, '09/02/2030', 101) AS "US",
TRY_CONVERT(date, '09/02/30', 1) AS "US (short)",
TRY_CONVERT(date, '20300902', 112) AS "ISO",
TRY_CONVERT(date, '09.02.2030', 104) AS "German"; परिणाम:
Changed language setting to British. +------------+------------+--------------+------------+------------+ | British | US | US (short) | ISO | German | |------------+------------+--------------+------------+------------| | 2030-02-09 | 2030-09-02 | 2030-09-02 | 2030-09-02 | 2030-02-09 | +------------+------------+--------------+------------+------------+
यहां, मैंने अपनी भाषा British पर सेट की है , फिर TRY_CONVERT() चलाया कई बार, प्रत्येक एक अलग style . का उपयोग कर रहा है तर्क (पहले वाले को छोड़कर, जो मेरे सत्र की डिफ़ॉल्ट भाषा का उपयोग करता है - ब्रिटिश)।
हम देख सकते हैं कि शैली तर्क अभिव्यक्ति के अनुवाद के तरीके को प्रभावित करता है।
अधिक जानकारी
देखें CONVERT() अधिक रूपांतरण उदाहरणों के लिए SQL सर्वर में, और CONVERT() बनाम TRY_CONVERT() SQL सर्वर में CONVERT() . के बीच तुलना के लिए और TRY_CONVERT() ।
CAST() . के लिए Microsoft के दस्तावेज़ देखें और CONVERT() अधिक विस्तृत जानकारी के लिए (इसमें से अधिकांश TRY_CONVERT() . पर भी लागू होता है )।