插入
insert into [dbo].[t_binary]([key], [binarychr]) values('003', 0x1189)
查询
select [key],CONVERT(binary(10), [binarychr]) from [t_binary]
结果
003 0x11202020202020202020为什么插入0x1189,结果变成0x1120了?
其中:binarychr char(10)
insert into [dbo].[t_binary]([key], [binarychr]) values('003', 0x1189)
查询
select [key],CONVERT(binary(10), [binarychr]) from [t_binary]
结果
003 0x11202020202020202020为什么插入0x1189,结果变成0x1120了?
其中:binarychr char(10)
create table t_binary([key] char(10), [binarychr] char(10))insert into [dbo].[t_binary]([key], [binarychr]) values('003', 0x1189)select [key],CONVERT(binary(10), [binarychr]) from [t_binary]
/*
003 0x11202020202020202020
*/
create table t_binary1([key] char(10), [binarychr] binary(2))insert into [dbo].[t_binary1]([key], [binarychr]) values('003', 0x1189)select [key],[binarychr] from [t_binary1]
/*
key binarychr
---------- ---------
003 0x1189
*/
从其他数据类型转换为 binary 或 varbinary 时,将在数据的左侧填充或截断数据。
填充将通过使用十六进制的零来完成。
http://technet.microsoft.com/zh-cn/library/ms188362.aspx
if OBJECT_ID('t_binary','u') is not null drop table t_binary
go
create table t_binary([key] char(10), [binarychr] char(10))insert into [dbo].[t_binary]([key], [binarychr])
--插入数据时,做下转换
select'003',convert(varchar(10),'0x1189')
select [key], [binarychr] from [t_binary]
/*
(1 row(s) affected)
key binarychr
---------- ----------
003 0x1189 (1 row(s) affected)
*/