Sql server转换为

时间:2014-06-23 14:23:28

标签: sql sql-server

我有一个有效的查询。查询中的一个字段是:

HASHBYTES('MD5', table1.field1 + table1.field2 + table1.field3) as OUT_NAME

这给了一个看起来很奇怪的字符串。我希望这是一个32位的十六进制字符串,所以我试着围绕hashbyte计算(来自sqlserver新闻组中的建议)

CONVERT(VARCHAR(32), THE-HASHBYTE-STUFF, 2) AS OUT_NAME.

我也尝试过(这在查询的其他地方工作)

SUBSTRING(master.dbo.fn_varbintohexstr(THE-HASHBYTE-STUFF), 3, 32) AS OUT_NAME

这两个都将varchar转换为int时出错。

我还尝试将HASHBYTES中的每个片段转换为varchar或nvarchar,并且仍然会在片段中出现错误 - 即使没有任何转换的片段 - 简单的HASHBYTES - 也能正常工作。我也试过CAST,但仍然有这些错误。

为什么

CONVERT(VARCHAR(32), something-that-works, 2) 

失败 - 转换为int?

0 个答案:

没有答案