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

VARCHAR के रूप में संग्रहीत बाइनरी को बाइनरी में कनवर्ट करें

आपको जो परिणाम मिलता है वह इसलिए है क्योंकि स्ट्रिंग "0003f80075177fe6" (एक VARCHAR value) को कोड बिंदुओं में बदल दिया जाता है, और इन कोड बिंदुओं को बाइनरी मान के रूप में प्रस्तुत किया जाता है। चूंकि आप शायद ASCII-संगत संयोजन का उपयोग कर रहे हैं, इसका मतलब है कि आपको ASCII कोड अंक मिलते हैं:0 48 (30 हेक्स) है, f 102 (66 हेक्स) और इसी तरह है। यह 30 30 30 33 66 38 30 30... . की व्याख्या करता है

इसके बजाय आप जो करना चाहते हैं वह स्ट्रिंग को बाइट्स के हेक्साडेसिमल प्रतिनिधित्व के रूप में पार्स करना है (00 03 f8 00 75 71 77 fe 66 ) CONVERT एक अतिरिक्त "शैली" पैरामीटर स्वीकार करता है जो आपको हेक्सस्ट्रिंग्स को परिवर्तित करने की अनुमति देता है:

SELECT CONVERT(BINARY(16), '0003f80075177fe6', 2)

स्टाइल 2 एक हेक्सस्ट्रिंग को बाइनरी में परिवर्तित करता है। (शैली 1 स्ट्रिंग के लिए वही करती है जो "0x" से शुरू होती है, जो यहां नहीं है।)

ध्यान दें कि यदि 16 बाइट्स से कम हैं (जैसा कि इस मामले में), मान शून्य के साथ दायां-गद्देदार है (0x0003F80075177FE60000000000000000 ) अगर आपको इसकी जगह लेफ्ट-पैडेड की जरूरत है, तो आपको इसे खुद करना होगा:

SELECT CONVERT(BINARY(16), RIGHT(REPLICATE('00', 16) + '0003f80075177fe6', 32), 2)

अंत में, ध्यान दें कि बाइनरी अक्षर रूपांतरण के बिना उन्हें "0x" के साथ उपसर्ग करके और उद्धरणों का उपयोग नहीं करके निर्दिष्ट किया जा सकता है:SELECT 0x0003f80075177fe6 प्रकार का एक कॉलम लौटाएगा BINARY(8) . इस क्वेरी के लिए प्रासंगिक नहीं है, लेकिन केवल पूर्णता के लिए।




  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 सर्वर:क्या एक ही समय में दो तालिकाओं में सम्मिलित करना संभव है?

  2. एसक्यूएल क्वेरी एक 3 टेबल में डुप्लिकेट मानों को हटाने के लिए दो अलग-अलग डेटाबेस के साथ आंतरिक रूप से जुड़ती है

  3. SQL सर्वर डेटाबेस को क्लाउड पर ले जाना

  4. SQL सर्वर (T-SQL) में उपयोगकर्ता की डिफ़ॉल्ट भाषा कैसे खोजें

  5. टी-एसक्यूएल में 'निष्पादित' का उपयोग कर चर के लिए मूल्य कैसे सेट करें?