在 MySQL 中使用十六进制数字

发布于 2024-07-09 19:03:52 字数 326 浏览 5 评论 0原文

我有一个存储过程需要将十六进制数转换为十进制数。 我已阅读 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() 的值转换为无符号整数?

I have a stored procedure that needs to convert hexadecimal numbers to their decimal equivalent. I've read the documentation for the UNHEX() function, but it is returning a binary value. What I'm wanting to do is something like this:

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

What am I missing? How can I convert the UNHEX()'d value to a unsigned integer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

染年凉城似染瑾 2024-07-16 19:03:52

您可以使用CONV() 函数在碱基之间进行转换。

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

You can use the CONV() function to convert between bases.

SET dec_val = CONV(hex_val, 16, 10);
怀里藏娇 2024-07-16 19:03:52
conv(hex_val, 16, 10)

将多个以 16 为基数的数字转换为以 10 为基数的数字。 UNHEX 函数执行完全不同的操作,它将十六进制数字对转换为字符。

conv(hex_val, 16, 10)

Will convert a number of base 16 to base 10. The UNHEX function does something completely different, it converts pairs of hex digits to characters.

子栖 2024-07-16 19:03:52

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

cast(conv(hex_val, 16, 10) as unsigned integer)
that should be solve the problem....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文