有人可以解释为什么在SQL中将相同字节转换为INT和BIGINT会产生截然不同的结果的确切原因?
我用过的一个小例子:
SELECT '00T1p000029eYmpEAE' AS OriginalString,
HASHBYTES('SHA2_512', '00T1p000029eYmpEAE') AS HashedString,
CONVERT(BIGINT, HASHBYTES('SHA2_512', '00T1p000029eYmpEAE')) AS IntValue,
9223372036854775807 AS BigIntMax,
CONVERT(INT, HASHBYTES('SHA2_512', '00T1p000029eYmpEAE')) AS BigInteValue;
到目前为止,我发现了这个: https://www.sqlservercentral.com/Forums/Topic1349851-391-1.aspx 但与那里的OP不同,我不清楚转换过程中发生了什么。
使用MS SQL Server 2016。