tsql - 我想得到一个二进制值的十六进制值,从中删除 0x

标签 tsql hash sql-server-2012 binary sha1

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

0xC06DCADF544BC3D6ECE7C64F485D2846E7A93F55

我想从中删除 0x

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

最佳答案

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

如果要插入的字段的数据类型是字符串类型(CHAR/VARCHAR/NCHAR/NVARCHAR) 然后您可以使用 CONVERT 函数将二进制值转换为字符串,同时指定 2 的“样式”:

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

关于tsql - 我想得到一个二进制值的十六进制值,从中删除 0x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021992/

相关文章:

sql - 返回的日期格式为 mm/dd/yyyy hh :mm:ss AM/PM

sql-server - 从 SQL 存储过程调用 SOAP Web 服务

SQL 服务器 : max date and inner join

sql - 如何限制子字符串以在 SQL Server 中的两个空格之间提取文本?

java - Java/Scala 中的高性能字符串哈希函数

linux - 如何检查目录的 md5hash 并将其与包含发送到目标目录的所有文件的哈希值的文件进行比较

sql - 如何连接到其名称作为值存储在另一个表中的表?

c# - SqlDependency.Start(connectionString) 每次返回 false

sql - 从天中获取天的序列

ruby - 在 Ruby 中将大散列划分为 N 个较小散列的最有效方法是什么?