Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में TRY_CONVERT () कैसे काम करता है

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() . पर भी लागू होता है )।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर varchar कॉलम से अजीब वर्ण (A टोपी के साथ) निकालें

  2. SQL सर्वर पुनर्निर्माण अनुक्रमणिका क्वेरी

  3. वर्तमान में SQL सर्वर में उपयोग की जा रही भाषा प्राप्त करें

  4. SQL सर्वर 2005 में लेन () बनाम डेटालेंथ ()

  5. चयनित परिणामों को सम्मिलित स्क्रिप्ट में परिवर्तित करना - SQL सर्वर