Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перевести из hex  [new]
artanov
Member

Откуда:
Сообщений: 3
Есть таблица с с колонкой ip адрес , тип binary. Значение хранится в HEX. Например 0x7F000001
Что нужно сделать, что бы я получил число типа 192.168.1.1
Может есть какое готовое решение.
29 окт 13, 11:40    [15045480]     Ответить | Цитировать Сообщить модератору
 Re: Перевести из hex  [new]
Гость333
Member

Откуда:
Сообщений: 3683
artanov
число типа 192.168.1.1

192.168.1.1 — это число?!
29 окт 13, 11:46    [15045528]     Ответить | Цитировать Сообщить модератору
 Re: Перевести из hex  [new]
artanov
Member

Откуда:
Сообщений: 3
хм , наврятле если там точки , я затрудняюсь сказать во что переводить, видимо в текст
29 окт 13, 11:52    [15045576]     Ответить | Цитировать Сообщить модератору
 Re: Перевести из hex  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
select stuff(v.x.value('.', 'varchar(20)'),1,1,'') from (
  select '.'+convert(varchar,convert(int, substring(0x7F000001, number, 1)))
  from master..spt_values where type='P' and number between 1 and 4
  for xml path(''), type
) v(x)
29 окт 13, 11:59    [15045631]     Ответить | Цитировать Сообщить модератору
 Re: Перевести из hex  [new]
artanov
Member

Откуда:
Сообщений: 3
Сон Веры Павловны, большая БЛАГОДАРНОСТЬ ) я не ожидал :)
29 окт 13, 12:19    [15045742]     Ответить | Цитировать Сообщить модератору
 Re: Перевести из hex  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
declare @t table
(
 ip binary(4),
 ip_as_text as 
  cast(cast(substring(ip, 1, 1) as int) as varchar(10)) + '.' +
  cast(cast(substring(ip, 2, 1) as int) as varchar(10)) + '.' +
  cast(cast(substring(ip, 3, 1) as int) as varchar(10)) + '.' +
  cast(cast(substring(ip, 4, 1) as int) as varchar(10))
);

insert into @t
values
 (0x7F000001);

select * from @t;
29 окт 13, 12:44    [15045919]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить