在MySQL中使用十六进制数字

时间:2008-12-08 20:34:13

标签: mysql hex

我有一个存储过程需要将十六进制数转换为十进制数。我已经阅读了UNHEX()函数的文档,但是它返回了一个二进制值。我想要做的是这样的事情:

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()'d值转换为无符号整数?

3 个答案:

答案 0 :(得分:23)

您可以使用CONV()功能在不同的基础之间进行转换。

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

答案 1 :(得分:7)

conv(hex_val, 16, 10)

将一些基数16转换为基数10. UNHEX函数完全不同,它将十六进制数字对转换为字符。

答案 2 :(得分:7)

强制转换(conv(hex_val,16,10)为无符号整数) 应该解决问题....