3 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
將INT轉(zhuǎn)換為十六進(jìn)制:
SELECT CONVERT(VARBINARY(8), 16777215)
將十六進(jìn)制轉(zhuǎn)換為INT:
SELECT CONVERT(INT, 0xFFFFFF)
更新2015-03-16
上面的示例有一個(gè)局限性,即僅在將HEX值指定為整數(shù)文字時(shí)才起作用。為了完整起見(jiàn),如果要轉(zhuǎn)換的值是十六進(jìn)制字符串(例如在varchar列中找到),請(qǐng)使用:
-- If the '0x' marker is present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))
-- If the '0x' marker is NOT present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))
注意:字符串必須包含偶數(shù)個(gè)十六進(jìn)制數(shù)字。奇數(shù)個(gè)數(shù)字將產(chǎn)生錯(cuò)誤。
可以在CAST和CONVERT(Transact-SQL)的“二進(jìn)制樣式”部分中找到更多詳細(xì)信息。我認(rèn)為需要SQL Server 2008或更高版本。

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
實(shí)際上,內(nèi)置函數(shù)名為master.dbo.fn_varbintohexstr。
因此,例如:
SELECT 100, master.dbo.fn_varbintohexstr(100)
給你
添加回答
舉報(bào)