Berikut adalah 3 cara untuk mengonversi nilai heksadesimal ke bilangan bulat di SQL Server.
Yang pertama adalah dua fungsi T-SQL yang memungkinkan Anda mengonversi nilai hex menjadi bilangan bulat. Selain fungsi tersebut, ada juga konsep konversi implisit, yang juga dapat menghasilkan hasil yang sama.
Contoh 1 – Fungsi CONVERT()
Fungsi pertama yang akan kita lihat adalah CONVERT()
fungsi. Ini memungkinkan Anda untuk mengonversi antar tipe data di SQL Server.
Berikut adalah contoh penggunaan fungsi ini untuk mengonversi nilai heksadesimal ke bilangan bulat:
SELECT CONVERT(INT, 0xfcab) Result;
Hasil:
+----------+ | Result | |----------| | 64683 | +----------+
Dalam hal ini, kami mengonversi nilai heksadesimal fcab
(diawali dengan 0x
) menjadi bilangan bulat.
Contoh 2 – Fungsi CAST()
Sebagai alternatif, kita dapat menggunakan CAST()
berfungsi untuk melakukan hal yang sama seperti contoh sebelumnya:
SELECT CAST(0xfcab AS INT) Result;
Hasil:
+----------+ | Result | |----------| | 64683 | +----------+
Perhatikan bahwa CAST()
dan CONVERT()
menggunakan sintaks yang sedikit berbeda. Dalam kasus CAST()
nilai yang akan dilemparkan didahulukan, sedangkan sebaliknya dengan CONVERT()
.
Contoh 3 – Konversi Implisit
Berikut adalah contoh melakukan konversi implisit, cukup dengan mengalikan nilai heksadesimal dengan 1:
SELECT 0xfcab * 1 Result;
Hasil:
+----------+ | Result | |----------| | 64683 | +----------+
Contoh 4 – Memformat Hasil
Kita juga dapat menggunakan FORMAT()
berfungsi untuk memformat hasil akhir. Dalam hal ini, kami masih menggunakan fungsi konversi untuk melakukan konversi yang sebenarnya. Hanya saja kita juga menggunakan FORMAT()
berfungsi untuk memformat hasil sebagai angka (dengan menggunakan N
penentu format).
SELECT FORMAT(CAST(0xfcab AS INT), 'N') Result;
Hasil:
+-----------+ | Result | |-----------| | 64,683.00 | +-----------+
Perhatikan bahwa fungsi ini sebenarnya mengembalikan hasil sebagai string.
Perhatikan juga bahwa FORMAT()
fungsi hanya menerima tipe data numerik dan tanggal dan waktu. Oleh karena itu, kami tidak dapat memberikan nilai heksadesimal langsung ke fungsi. Jika kita mencoba melakukannya, inilah yang terjadi:
SELECT FORMAT(0xfcab, 'N') Result;
Hasil:
Argument data type varbinary is invalid for argument 1 of format function.