Работа с шестнадцатеричными числами в MySQL

StackOverflow https://stackoverflow.com/questions/350787

  •  20-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

conv(hex_val, 16, 10)

Преобразует число из базового 16 в базовое 10.Функция UNHEX делает нечто совершенно другое, она преобразует пары шестнадцатеричных цифр в символы.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top