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.