powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование из 16-ричной системы в 10-ную и обратно.
10 сообщений из 10, страница 1 из 1
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929062
Юрий Ре
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Помогите пожалуйста разобраться:

вот пример, если выполнить скрипт:

SELECT CONVERT(VARBINARY(max), convert(bigint, '3163147737'))
результат: 0x00000000BC89CDD9

логично было бы если выполнить обратную конвертацию скриптом:

SELECT CONVERT(bigint, convert(VARBINARY(max), '0x00000000BC89CDD9'))
результат почему-то другой: 4774721848535696441

Как добиться что бы результат был таким же: 3163147737 ?
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929068
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ре,

вы строку конвертируете, а не скаляр.

ps Сорь, просмотрел преобразование, как обычно...
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929069
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT CONVERT(VARBINARY(8000), convert(bigint, 3163147737))

SELECT CONVERT(bigint, convert(VARBINARY(8000), 0x00000000BC89CDD9))
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929071
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ре,

Вроде все ОК:

Код: sql
1.
SELECT CONVERT(BIGINT,  CONVERT(VARBINARY(max), convert(bigint, '3163147737')))



Нет, не просмотрел, во втором выражении вы строку подставляете, а не двоичное значение.
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929073
Юрий Ре
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич
Код: sql
1.
2.
3.
SELECT CONVERT(VARBINARY(8000), convert(bigint, 3163147737))

SELECT CONVERT(bigint, convert(VARBINARY(8000), 0x00000000BC89CDD9))



Если выполнять так то конечно работает.

А если данное значение (BC89CDD9) хранится в таблице в столбце с типом данных nvarchar(max)?

То такое преобразование не работает.
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929075
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ре,

Код: sql
1.
select  convert(VARBINARY(max), '0x00000000BC89CDD9', 1), convert(VARBINARY(max), '0x00000000BC89CDD9')
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929085
Юрий Ре
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
Юрий Ре,

Вроде все ОК:

Код: sql
1.
SELECT CONVERT(BIGINT,  CONVERT(VARBINARY(max), convert(bigint, '3163147737')))



Нет, не просмотрел, во втором выражении вы строку подставляете, а не двоичное значение.



Если так то тоже работает, но в талице у меня хранятся значения вида: BC89CDD9, в столбце с типом данных nvarchar(max)

Мне нужно их преобразовать в 10-число.
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929101
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ре,

Т.е. '0x' к строке вы не в состоянии приляпать?
З.Ы. Или изучить документацию?

Код: sql
1.
select convert( bigint, convert (varbinary(8000), 'BC89CDD9', 2) )
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929102
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ре
SELECT CONVERT(VARBINARY(max), convert(bigint, '3163147737'))
результат: 0x00000000BC89CDD9

логично было бы если выполнить обратную конвертацию скриптом:

SELECT CONVERT(bigint, convert(VARBINARY(max), '0x00000000BC89CDD9'))
результат почему-то другой: 4774721848535696441

Как добиться что бы результат был таким же: 3163147737 ?
Код: sql
1.
SELECT CONVERT(bigint, CONVERT(varbinary(8), 'BC89CDD9', 2))



msLex уже показал код, только нужно использовать стиль 2, а не 1, потому что у вас нет "0x"
...
Рейтинг: 0 / 0
Преобразование из 16-ричной системы в 10-ную и обратно.
    #39929113
Юрий Ре
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за помощь.

Проблема была в том что я не указал стиль.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование из 16-ричной системы в 10-ную и обратно.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]