我需要将mysql数据库中的大量mac地址从varchar格式转换为bigint(6)。 我知道mac地址C404158996CD - 是215521820251853。 这样做的功能是什么?我已尝试使用hex(),但它返回433430343135383939364344用于相同的mac地址。
答案 0 :(得分:1)
C404158996CD是十六进制数,215521820251853是十进制数。十六进制(215521820251853)= C404158996CD,而不是相反。
您需要CONV('C404158996CD', 16,10)
(“将'C404158996CD'从基数16转换为基数10”)
答案 1 :(得分:0)
看看这个tutorial。他们在这里将MAC地址转换为bigint
。你可以这样做:
select
concat (left (b.mh, 2),':',mid(b.mh,3,2),':',mid(b.mh,5,2),':',mid(b.mh,7,2),':',mid(b.mh,9,2),':',mid(b.mh,11,2))
from (
select lpad (hex (a.mac_as_int), 12, '0') as mh
from (
select 1234567890 as mac_as_int
) a
) b
这stackoverflow's answer正在详细解释它。
或者,您也可以使用MySQL
' conv
功能