MySQL

2008-12-08 8 views
10

में हेक्स संख्याओं के साथ काम करना मेरे पास एक संग्रहीत प्रक्रिया है जिसे हेक्साडेसिमल संख्याओं को उनके दशमलव समकक्ष में परिवर्तित करने की आवश्यकता है। मैंने UNHEX() फ़ंक्शन के लिए प्रलेखन पढ़ा है, लेकिन यह एक बाइनरी मान लौटा रहा है। मैं जो करना चाहता हूं वह इस तरह कुछ है:MySQL

CREATE PROCEDURE foo(hex_val VARCHAR(10)) 
BEGIN 
    DECLARE dec_val INTEGER; 

    SET dec_val = UNHEX(hex_val); 

    -- Do something with the decimal value 
    select dec_val; 
END 

मुझे क्या याद आ रही है? मैं UNHEX() 'डी मान को एक हस्ताक्षरित पूर्णांक में कैसे परिवर्तित कर सकता हूं?

उत्तर

22

आप बेस के बीच कनवर्ट करने के लिए CONV() फ़ंक्शन का उपयोग कर सकते हैं।

SET dec_val = CONV(hex_val, 16, 10); 
+0

ध्यान दें कि यह दशमलव को * स्ट्रिंग * के रूप में वापस कर देगा। यदि कोई दशमलव को पूर्णांक के रूप में प्राप्त करना चाहता है, तो इसका उपयोग करें: कास्ट (रूपांतरण (हेक्स_वल, 16, 10) बिना हस्ताक्षर किए गए) – kien

7
conv(hex_val, 16, 10) 

आधार 16 से आधार 10 में परिवर्तित करेगा। UNHEX फ़ंक्शन कुछ अलग करता है, यह हेक्स अंकों के जोड़े को वर्णों में परिवर्तित करता है।

+0

धन्यवाद। – eli

7

डाली (रूपांतरण (hex_val, 16, 10) अहस्ताक्षरित पूर्णांक के रूप में) कि समस्या का समाधान होना चाहिए .... ऊपर समाशोधन क्या "unhex" करता है के लिए

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^