Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

3 Cara Mengonversi HEX ke INT di SQL Server (T-SQL)

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.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan jumlah beberapa kolom dalam sebuah tabel di SQL Server 2005?

  2. Konfigurasikan Lucene.Net dengan SQL Server

  3. Menambahkan identitas ke kolom yang ada

  4. Ubah Password pada SA Login di SQL Server (Contoh T-SQL)

  5. DBA - Cara Membunuh Semua Proses Basis Data Di SQL Server