我有一个名为X的字段,其中fieldtype是Binary(15)。 现在我用
更新表格Update Table_name
Set X = 567845329090989
Where some_condition
现在,在查看表格中执行上述命令后,我发现该列已使用以下内容进行更新
0x0000000F000001ADB920CB73040200
这也不是十六进制值。这是怎么回事?
答案 0 :(得分:3)
我忘记了确切的详细信息,但这是do with endianess (SO)
答案 1 :(得分:2)
来自@gbn的评论。常量567845329090989
读为十进制(15,0)而不是bigint。
declare @T table (X binary(15))
declare @X bigint = 567845329090989
declare @Y decimal(15,0) = 567845329090989
insert into @T values (@X)
insert into @T values (567845329090989)
insert into @T values (@Y)
select *
from @T
结果
X
--------------------------------
0x0000000000000000020473CB20B9AD
0x0000000F000001ADB920CB73040200
0x0000000F000001ADB920CB73040200