使用TSQL将INT转换为HEX字符串

时间:2013-10-25 04:22:00

标签: sql-server sql-server-2008 tsql

希望使用TSQL将整数转换为十六进制字符串等效

1 =    1
10 =   A
100 = 64
1000 = 3E8

所以解决方案似乎是

DECLARE @str VARCHAR(10)
SELECT @str = sys.fn_varbintohexstr(CONVERT(VARBINARY, @num))
IF @num < 16
   SELECT @str = RIGHT(@str, 1)
ELSE IF @num < 256
   SELECT @str = RIGHT(@str, 2)
ELSE IF @num < 4096
   SELECT @str = RIGHT(@str, 3)
ELSE -- and so on
   SELECT @str = RIGHT(@str, 4)

RETURN @str

但有人这似乎有点klutzy,有更好的方法吗?

0 个答案:

没有答案