9

我想将 MAC 地址存储在我的一个数据库表中,我应该使用什么数据类型?阅读 google 上的文章,我曾多次看到 Binary(8) 被提及。这是正确的方法吗?

另外,这对我来说没有意义,因为 MAC 地址是六组两个十六进制数字,你不会使用 Binary(6) 吗?

4

3 回答 3

7

我根本不会用Binary

我会用CHAR(12).

虽然这实际上取决于您使用数据的目的 - 如果这仅用于显示,您可以简单地使用文本表示。

于 2012-12-26T20:21:02.333 回答
5

为了更容易执行二进制操作,您可以将它们存储到 Binary(6) 您可以使用以下内置函数来查看二进制数据的十六进制可读值:

select top 10 master.sys.fn_varbintohexstr(mac) from macaddresses

并将十六进制文本转换为二进制:

select CONVERT(binary(6), 'AABBCCDDEEFF', 2);
于 2012-12-26T22:05:39.580 回答
1

MAC 地址是 6 个十六进制数字的序列。这就是为什么将它存储为数字会很有效。使用 BIGINT。

于 2016-06-07T23:25:47.800 回答