Umwandeln von Hexadezimal nach Integer

By Frank Kalis

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
DECLARE @hex VARCHAR(10)
DECLARE @stmt NVARCHAR(255)
DECLARE @int INT 
SET @hex = '0x0000008A' 
SELECT @stmt = N'SELECT @int = CONVERT( int , ' + @hex + ' )' 
EXEC sp_ExecuteSql @stmt, N' @int Int Out', @int OUT SELECT @int GO
GO

GO          
----------- 
138

In die andere Richtung funktioniert:

DECLARE @dec VARBINARY(10)
DECLARE @result VARCHAR(10)
SET @dec = 138
EXEC master..xp_varbintohexstr @dec, @result OUT
SELECT @result
GO
           
---------- 
0x0000008A

Interessanterweise liefern folgende Statement komplett andere Werte. Erst in der dynamischen Variante erscheinen die erwarteten Werte:

SELECT CAST(CAST('0x0000008A' AS VARBINARY) AS INT)
SELECT CONVERT( INT, CONVERT( VARBINARY, '0x8A' ) ) 
GO
SET NOCOUNT OFF

            
----------- 
808466497

            
----------- 
813185089
Tags: Tags:
Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: , ,

Noch kein Feedback


Formular wird geladen...