以下のコード
declare @b varbinary(8) = 1
select cast(@b as varchar(max)), @b
戻り値
キャストオリジナル 0x00000001
タイムスタンプ/varbinary値をvarcharにキャストする方法は? 「0x00000001」が必要です。
以下のコード
declare @b varbinary(8) = 1
select cast(@b as varchar(max)), @b
戻り値
キャストオリジナル 0x00000001
タイムスタンプ/varbinary値をvarcharにキャストする方法は? 「0x00000001」が必要です。
これがあなたが探しているものかどうかはわかりませんが、binary(8) から varchar への変換に非常に苦労しました。以下の関数が変換を行っていることを確認してください。
declare @binary binary(8)
declare @radhe varchar(100) -- this is just a variable to store the returning value at the end
select @binary = 0x000000000000037A
;with ctea as
(
select maxlen = MAX(len(@binary))
) ,
cte as
(
select i = 1
union all
select i = i + 1 from cte,ctea where i < maxlen
) ,
cte2 as
(
select i, j=convert(int,SUBSTRING(@binary,i,1)) from cte
),
cte3 as
(
select i, j=j/16, k=j%16 from cte2
),
ctehex as
(
select i
,j
,k
,h1=case when j<10 then convert(varchar(1),j)
else CHAR(55+j)
end
,h2=case when k<10 then convert(varchar(1),k)
else CHAR(55+k)
end
from cte3
)
select @radhe = '0x'+(select h1+h2 from ctehex for xml path (''))
select @radhe as [the varchar value], @binary as [the binary(8) value]
-- これが M に役立つことを願っています