Sql server Varbinary在where子句中工作不正确

Sql server Varbinary在where子句中工作不正确,sql-server,sql-server-2012,varbinarymax,Sql Server,Sql Server 2012,Varbinarymax,我有一个select查询,它给出了输出“0x38F0A2D294A4AEBD1648C952D910AC51C40FE7” 即使知道SQL server是做什么的,我也无法将列与值进行比较。我正在这样做: SELECT 'Worked!' WHERE HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)+ CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar)

我有一个select查询,它给出了输出“0x38F0A2D294A4AEBD1648C952D910AC51C40FE7”

即使知道SQL server是做什么的,我也无法将列与值进行比较。我正在这样做:

SELECT 'Worked!'
WHERE  HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)+
CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar))=0x38F0A2D294A4AEBD1648C952D910AC51C40FE7
这根本不起作用。奇怪的是,当值不同时,它适用于其他情况。

尝试以下方法:

declare @Hashthis nvarchar(2000)
SELECT @Hashthis=HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)
+CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar))

SELECT 'Worked' where HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)
+CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar))=@Hashthis

这真的很有效。但是有人能告诉我为什么它不起作用?这样就不会有性能问题了?不是对你问题的回答,而是。
declare @Hashthis nvarchar(2000)
SELECT @Hashthis=HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)
+CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar))

SELECT 'Worked' where HASHBYTES ('SHA1',CAST(54 AS varchar)+CAST(1 AS varchar)
+CAST('2013-07-26 16:30:49.9786317' AS varchar)+CAST(1 AS varchar))=@Hashthis