Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преобразувайте цяло число в шестнадесетично и шестнадесетично в цяло число

Преобразувайте INT в шестнадесетичен:

SELECT CONVERT(VARBINARY(8), 16777215)

Преобразуване на шестнадесетичен в INT:

SELECT CONVERT(INT, 0xFFFFFF)

Актуализация 2015-03-16

Горният пример има ограничението, че работи само когато HEX стойността е дадена като целочислен литерал. За пълнота, ако стойността за преобразуване е шестнадесетичен низ (като намерен в колона varchar), използвайте:

-- 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))

Забележка: Низът трябва да съдържа четен брой шестнадесетични цифри. Нечетен брой цифри ще доведе до грешка.

Повече подробности можете да намерите в раздела "Двоични стилове" на CAST и CONVERT (Transact-SQL). Смятам, че е необходим SQL Server 2008 или по-нова версия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обектът 'DF__*' зависи от колона '*' - Промяна на int на double

  2. Как да пиша с помощта на BCP към отдалечен SQL сървър?

  3. Как да изпълните съхранена процедура от Laravel

  4. Вътрешни елементи за репликация на транзакции на SQL Server

  5. Не може да се зареди насипно. Код за грешка в операционната система 5 (Достъпът е отказан.)