Menukar Integer dan Rentetan Hex dalam SQL Server
Pertanyaan Sybase dan Excel yang disediakan bertujuan untuk menukar integer kepada hex dan rentetan hex kepada integer. Walau bagaimanapun, pertanyaan ini mungkin gagal apabila dilaksanakan dalam Microsoft SQL Server. Nasib baik, terdapat kaedah mudah untuk melaksanakan penukaran ini dalam SQL Server.
Menukar Integer kepada Hex
Untuk menukar integer (diwakili sebagai int_value) kepada rentetan heksadesimal, gunakan sintaks berikut:
SELECT CONVERT(VARBINARY(8), int_value)
Pertanyaan ini akan mengembalikan Perwakilan rentetan heksadesimal 8-bait bagi integer.
Menukar Hex kepada Integer
Untuk menukar rentetan perenambelasan (diwakili sebagai rentetan_hex) kepada integer, gunakan sintaks berikut :
SELECT CONVERT(INT, hex_string)
Pertanyaan ini akan mengembalikan integer setara dengan rentetan perenambelasan.
Kemas kini
Pada tahun 2015, kemas kini telah dibuat untuk menangani had di mana penukaran di atas hanya berfungsi dengan nilai perenambelasan yang disediakan sebagai literal integer. Contoh berikut menunjukkan cara menukar rentetan heksadesimal yang mungkin disimpan dalam lajur varchar:
Dengan Penanda '0x':
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))
Tanpa ' Penanda 0x':
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))
Perhatikan bahawa perenambelasan rentetan mesti mengandungi nombor genap digit heks; bilangan digit yang ganjil akan mengakibatkan ralat.
Untuk butiran lanjut, rujuk bahagian "Gaya Binari" dalam dokumentasi CAST dan CONVERT untuk SQL Server. Kaedah ini harus berfungsi dengan betul dalam SQL Server 2008 atau versi yang lebih baru.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Integer dan Rentetan Hex dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!