Работа с шестнадцатеричными числами в MySQL - PullRequest
11 голосов
/ 08 декабря 2008

У меня есть хранимая процедура, которая должна преобразовать шестнадцатеричные числа в их десятичный эквивалент. Я прочитал документацию по функции 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 () в целое число без знака?

Ответы [ 3 ]

23 голосов
/ 08 декабря 2008

Вы можете использовать функцию CONV() для преобразования между базами.

SET dec_val = CONV(hex_val, 16, 10);
7 голосов
/ 09 апреля 2010

приведение (conv (hex_val, 16, 10) как целое число без знака) это должно решить проблему ....

7 голосов
/ 08 декабря 2008
conv(hex_val, 16, 10)

Преобразует число от 16 до 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...