【发布时间】:2011-01-14 01:23:45
【问题描述】:
类似于this question (Sql Server convert integer to binary string,但我想将 varbinary(16) 转换为其文本版本。
正如我的代码结果所证明的那样,我正在做一些可悲的错误。
create function GetGuidBinaryString (@value varbinary(16))
returns varchar(128)
as
begin
declare @vsresult varchar(128)
declare @inti int
select @inti = 128, @vsresult = ''
while @inti>0
begin
select @vsresult=convert(char(1), @value % 2)+@vsresult
select @value = convert(int, (@value / 2)), @inti=@inti-1
end
return @vsresult
end
create table #values (binvalue varchar(128))
delete from #values
declare @intcount int
select @intcount = 0
while @intcount < 100
begin
insert into #values select dbo.GetGuidBinaryString(convert(varbinary(16),convert(bigint,2147483640) + @intcount))
select @intcount = @intcount+1
end
select * from #values
也许我在函数中进行了一些隐式转换,因为该函数仅适用于正整数。
【问题讨论】:
标签: sql-server type-conversion implicit-conversion