Given a binary(16) column, how do I display its value as a hexadecimal number? I've been experimenting in the console a little below, and I'm not getting the results I expect. Could it be that I'm not converting numbers to binary properly?
I have the following sample query: select hex(cast(10 as binary))
,
but the output is rather unexpected: 3130
.
Basically, it appears to just take the decimal representation of the number, and insert a 3
digit before each digit, e.g. 2
-> 32
, 22
-> 3232
, 678
-> 363738
, etc.
If I specify a length for the binary data type (e.g. binary(16)
), I get the same behavior, except that it gets padded on the right with the required number of 0
s.
Obviously, that's not what I'm looking for. What am I missing?
EDIT: just tried convert(678, binary)
instead of cast
, same behavior.
Why make things complicated? I just use this to display the value of a BINARY(16)
column:
SELECT HEX(colname);
You can also set your mysql client to display binary data as hex, as described here:
Does the mysql CLI tool provide a way to display binary data in a console-friendly manner?
mysql --binary-as-hex
or
[client]
binary-as-hex = true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With