2012-11-30 70 views
0

我有BIGINT數字示例1234567891此數字的十六進制數爲0x499602D3。 我想知道如何轉換可以在SQL Server 2008中完成?在SQL Server 2008中將BIGINT轉換爲HEX

+0

可能重複的[十進制到十六進制轉換在SQL Server 2008中](http://stackoverflow.com/questions/13643729/decimal-to-hex-conversion-in-sql-server-2008) – Magnus

+1

@Magnus我不知道不這麼認爲 - 這是根據下面的答案來自同一個OP的後續問題。 – Bridge

回答

3

INT轉換爲十六進制:

SELECT CONVERT(VARBINARY(8), 1234567891); 

十六進制轉換爲INT:

SELECT CONVERT(INT, 0x499602D3); 

BIGINT應該是相同的交易替代INTBIGINT使用

SELECT CONVERT(VARBINARY(8), CAST(2716455883 as bigint)); 

http://classicasp.aspfaq.com/general/how-do-i-convert-from-hex-to-int-and-back.html

+0

2716455883的十六進制值是A1E9D3CB,但使用SELECT CONVERT(VARBINARY(8),2716455883)獲取答案0x0A000001CBD3E9A1 – user1751909

+0

這是一個十六進制字符串。你想要的是別的 - 但它不是標準的十六進制。我現在將詳細看看... – MoonKnight

+0

@ user1751909'SELECT CONVERT(VARBINARY(8),1234567891);'給我'0x499602D3',所以我不確定發生了什麼事情。爲了得到你想要的字符串,你必須在返回的字符串上使用'LTRIM()'來擺脫'0x'。但我確認你在評論中得到的內容確實是你所擁有的INT的正確十六進制。誰告訴你這是錯誤的,爲什麼? – MoonKnight

相關問題