T-SQL将十六进制转换为十进制

use*_*fwr 2 t-sql

我尝试使用TSQL,当值在变量内时,我会遇到一些问题,将十六进制转换为十进制.

我的代码是:

SET @hex = SUBSTRING(@x,1,2) --give 1e
SET @hex = '0x' + @hex
SELECT CAST (@hex AS int)
Run Code Online (Sandbox Code Playgroud)

在将varchar值转换为int时,我收到转换失败的错误

我不知道这是什么问题,到目前为止我找不到解决方案

任何的想法?谢谢

Dam*_*ver 6

这适用于(对于SQL Server 2008或更高版本):

declare @hex varchar(316)
SET @hex = '1e' --SUBSTRING(@x,1,2) --give 1e
SET @hex = '0x' + @hex
SELECT CONVERT(int,CONVERT (binary(1),@hex,1))
Run Code Online (Sandbox Code Playgroud)

请参阅CAST和CONVERT页面上的"二进制样式" .