Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuyển đổi số nguyên thành hex và hex thành số nguyên

Chuyển INT sang hex:

SELECT CONVERT(VARBINARY(8), 16777215)

Chuyển đổi hex sang INT:

SELECT CONVERT(INT, 0xFFFFFF)

Cập nhật 2015-03-16

Ví dụ trên có hạn chế là nó chỉ hoạt động khi giá trị HEX được cung cấp dưới dạng một chữ số nguyên. Để đầy đủ, nếu giá trị cần chuyển đổi là một chuỗi thập lục phân (chẳng hạn như được tìm thấy trong cột varchar), hãy sử dụng:

-- If the '0x' marker is present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))

-- If the '0x' marker is NOT present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))

Lưu ý: Chuỗi phải chứa một số chẵn gồm các chữ số hex. Một số lẻ các chữ số sẽ gây ra lỗi.

Bạn có thể tìm thêm thông tin chi tiết trong phần "Kiểu nhị phân" của CAST và CONVERT (Transact-SQL). Tôi tin rằng SQL Server 2008 trở lên là bắt buộc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để chia nhỏ dữ liệu XML thành các cột cơ sở dữ liệu SQL Server

  2. Chức năng định dạng ngày của SQL Server

  3. Sử dụng DateTime trong SqlParameter cho thủ tục được lưu trữ, lỗi định dạng

  4. SQL OUTPUT Thủ tục được lưu trữ không hoạt động với ExecuteReader

  5. Trong SQL, làm cách nào bạn có thể nhóm theo phạm vi?