Trabalhando com números hexadecimais no MySQL
Pergunta
Eu tenho um procedimento armazenado que as necessidades de converter números hexadecimais ao seu decimal equivalente. Eu li a documentação para a função UNHEX (), mas ele está retornando um valor binário. O que eu estou querendo fazer é algo como isto:
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
O que eu estou ausente? Como posso converter o UNHEX () 'valor d para um inteiro não assinado?
Solução
Você pode usar a função CONV()
para converter entre bases.
SET dec_val = CONV(hex_val, 16, 10);
Outras dicas
conv(hex_val, 16, 10)
irá converter um número de base 16 para base 10. A função UNHEX faz algo completamente diferente, ele converte pares de dígitos hexadecimais de caracteres.
fundido (conv (hex_val, 16, 10) como um número inteiro sem sinal) que deve ser resolver o problema ....
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow