gpt4 book ai didi

sql - SQL:将整数转换为十六进制字符串?

转载 作者:行者123 更新时间:2023-12-04 17:22:58 24 4
gpt4 key购买 nike

如何将整数转换为十六进制字符串?
我想将int转换为可以用作页面颜色的格式,例如'#ff0000'。

因此,例如:

--This converts my int to hex:
CONVERT(VARBINARY(8), Color) Color,

我想做这样的事情:
'#' + CONVERT(NVARCHAR(10), CONVERT(VARBINARY(8), Color)) Color

但是转换varbinary字符串只是将其转换为ascii字符,而不是返回实际的十六进制字符串

最佳答案

有一个内置函数可以从二进制值生成十六进制字符串

SELECT
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))

您需要 binary(3)以确保输出字符串的正确长度
这是错误的。您会得到4个十六进制数字,因为这里的0和255是4字节 int
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))

2017年10月更新:

转换现在已内置到SQL Server中(自2008年起!),因此我们可以简单地使用CONVERT
SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)

关于sql - SQL:将整数转换为十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com