从hex转换为varchar时没有得到正确的答案

时间:2012-11-30 11:54:27

标签: sql sql-server sql-server-2008

我有陈述:

declare @x varchar(10)
declare @cardnum bigint
set @cardNum=9999999999
set @x=convert(varchar, CONVERT (varbinary(8), CONVERT(BIGINT, @cardNum)))
print @x

我得到答案为Tãÿ没有将十六进制值2540BE3FF作为字符串

1 个答案:

答案 0 :(得分:2)

试试这样:

declare @x varchar(50)
declare @cardnum bigint
set @cardNum=9999999999

declare @hexbin varbinary(max)
set @hexbin = CONVERT (varbinary(8), @cardNum)

Set @x = CONVERT(varchar(max), @hexbin, 1)
print @x

Set @x = CONVERT(varchar(max), @hexbin, 2)
print @x

在此 MSDN link

上详细了解相关信息