用于在SQL Server数据库表中存储MAC地址的数据类型是什么?

Mau*_*imo 8 sql sql-server

我想将MAC地址存储在我的一个数据库表中,我应该使用哪种数据类型?在google上阅读文章,我看过Binary(8)提到了几次.这是正确的方法吗?

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

Ode*_*ded 7

我根本不会用Binary.

我会用CHAR(12).

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

  • @mausimo,我请你听取Oded的建议.将它们存储为二进制,即使跨越5M行,也只能节省20MB的磁盘空间.因此,对于权衡,在尝试查找下一个可用的租约时,您会获得更复杂的查询和更少的查询性能.不要拉g sw吞下骆驼. (2认同)

Ath*_*afa 5

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

select top 10 master.sys.fn_varbintohexstr(mac) from macaddresses
Run Code Online (Sandbox Code Playgroud)

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

select CONVERT(binary(6), 'AABBCCDDEEFF', 2);
Run Code Online (Sandbox Code Playgroud)