Zde jsou 3 způsoby, jak převést hexadecimální hodnotu na celé číslo v SQL Server.
Nejprve jsou dvě funkce T-SQL, které vám umožňují převést hexadecimální hodnotu na celé číslo. Kromě těchto funkcí existuje také koncept implicitní konverze, která také může přinést stejný výsledek.
Příklad 1 – Funkce CONVERT()
První funkcí, na kterou se podíváme, je CONVERT()
funkce. To vám umožní převádět mezi datovými typy v SQL Server.
Zde je příklad použití této funkce k převodu hexadecimální hodnoty na celé číslo:
SELECT CONVERT(INT, 0xfcab) Result;
Výsledek:
+----------+ | Result | |----------| | 64683 | +----------+
V tomto případě převedeme hexadecimální hodnotu fcab
(předponou 0x
) na celé číslo.
Příklad 2 – Funkce CAST()
Alternativně můžeme použít CAST()
funkci provést totéž jako v předchozím příkladu:
SELECT CAST(0xfcab AS INT) Result;
Výsledek:
+----------+ | Result | |----------| | 64683 | +----------+
Všimněte si, že CAST()
a CONVERT()
používat trochu jiné syntaxe. V případě CAST()
hodnota, která má být přetypována, je na prvním místě, zatímco u CONVERT()
je to naopak .
Příklad 3 – Implicitní konverze
Zde je příklad provedení implicitní konverze jednoduše vynásobením hexadecimální hodnoty číslem 1:
SELECT 0xfcab * 1 Result;
Výsledek:
+----------+ | Result | |----------| | 64683 | +----------+
Příklad 4 – Formátování výsledku
Můžeme také použít FORMAT()
funkce pro formátování konečného výsledku. V tomto případě stále používáme konverzní funkci k provedení skutečného převodu. Jde o to, že také používáme FORMAT()
funkci formátovat výsledek jako číslo (pomocí N
specifikátor formátu).
SELECT FORMAT(CAST(0xfcab AS INT), 'N') Result;
Výsledek:
+-----------+ | Result | |-----------| | 64,683.00 | +-----------+
Všimněte si, že tato funkce ve skutečnosti vrací výsledek jako řetězec.
Všimněte si také, že FORMAT()
funkce přijímá pouze číselné a datové a časové typy dat. Proto nemůžeme předat funkci přímo šestnáctkovou hodnotu. Pokud se o to pokusíme, stane se toto:
SELECT FORMAT(0xfcab, 'N') Result;
Výsledek:
Argument data type varbinary is invalid for argument 1 of format function.