sql server 2008中的十进制到十六进制转换

use*_*909 2 sql sql-server-2008

十六进制值2716455883A1E9D3CB使用

SELECT CONVERT(VARBINARY(8), 2716455883) 
Run Code Online (Sandbox Code Playgroud)

得到答案 0x0A000001CBD3E9A1

Ric*_*iwi 6

SELECT CONVERT(VARBINARY(8), cast(2716455883 as bigint))
Run Code Online (Sandbox Code Playgroud)

这是由于SQL Server在没有限定类型的情况下解释文字的方式.看一下这个

select sql_variant_property(2716455883, 'basetype'); -- numeric
select sql_variant_property(2716455883, 'precision'); -- 10
select sql_variant_property(2716455883, 'scale'); -- 0
Run Code Online (Sandbox Code Playgroud)