我想获取二进制值的十六进制值,从中删除 0x

I want to get hexadecimal value off a binary value removing 0x from it

我在 SQL 服务器中有一个包含 SHA1 代码的二进制值,例如:

0xC06DCADF544BC3D6ECE7C64F485D2846E7A93F55

我想从中删除 0x

当我计算字符串的 SHA1 时,输出以 0x 开头,我把它放在一个二进制变量中。从中删除 0x 后,我想将它存储在一个列中。

如果存储二进制值的列的数据类型是 BINARYVARBINARY,则不能删除前导 0x,因为那样的话值将是刺痛,不再是二元的。 0x 不是值的一部分,它表示该值是二进制而非字符串。

如果插入的字段的数据类型是字符串类型(CHAR / VARCHAR / NCHAR / NVARCHAR)那么你可以转换二进制值使用 CONVERT 函数转换为字符串,同时指定 "style" of 2:

SELECT CONVERT(VARCHAR(50), 0xC06DCADF544BC3D6ECE7C64F485D2846E7A93F55, 2)
-- C06DCADF544BC3D6ECE7C64F485D2846E7A93F55