将十六进制值转换为bigint

Cor*_*rei 5 t-sql sql-server sql-server-2008

我在将字符串(表示十六进制数字)转换为bigint时遇到了一些麻烦.我也希望这能在一个函数内部发生并且尽可能高效.无论如何都在利用内置函数?这是我想要做的一个例子:

select convert (bigint, '0000010d1858798c')
Run Code Online (Sandbox Code Playgroud)

Mit*_*eat 6

SQL Server 2008发行版更新了该CONVERT()函数,以便能够转换十六进制值:

select convert(bigint, convert (varbinary(8), '0x0000010d1858798c', 1))
Run Code Online (Sandbox Code Playgroud)

结果:

1155754654092 (decimal) ( ==  0x0000010d1858798c )
Run Code Online (Sandbox Code Playgroud)