我需要将mysql数据库中的许多mac地址从varchar格式转换为bigint(6)。我知道mac地址C404158996CD -是215521820251853。做这件事的适当功能是什么?为此,我尝试使用十六进制(),但是对于相同的mac地址,它返回433430343135383939364344。
发布于 2015-08-10 12:01:00
C404158996CD是十六进制数,215521820251853是十进制。十六进制(215521820251853)= C404158996CD,而不是相反。
您需要CONV('C404158996CD', 16,10) (“将'C404158996CD‘从基数16转换为基数10")
发布于 2015-08-10 12:02:46
看看这个教程。在这里,他们正在将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的答案正在详细解释它。
或者,您也可以使用MySQL的conv函数。
https://stackoverflow.com/questions/31918730
复制相似问题