sql >> Databáze >  >> RDS >> Sqlserver

3 způsoby, jak převést HEX na INT v SQL Server (T-SQL)

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.

  1. Vytváříte obslužnou rutinu protokolování pro připojení k Oracle?

  2. Jak zjistit, zda je MySQLnd aktivním ovladačem?

  3. Nelze se připojit k databázi Oracle pomocí JDBC, pokud heslo obsahuje speciální znaky

  4. SQL Server:použijte parametr v CREATE DATABASE