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

Откуда:
Сообщений: 30
UPDATE Klient SET ID_Client = HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar) )



получается вот такой результат - › Fґp™ЈHUО)EЬ$Л"bz

Как сделать чтобы получился результат типа - e807f1fcf82d132f9bb018ca6738a19f?
28 май 13, 16:52    [14360668]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Поле ID_Client какого типа?
28 май 13, 16:58    [14360723]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
HashBytes
Guest
UPDATE Klient SET ID_Client = HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar(20)), 2)
28 май 13, 17:01    [14360748]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
potap
Member

Откуда:
Сообщений: 30
поле varchar
28 май 13, 19:26    [14361546]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
potap
Member

Откуда:
Сообщений: 30
select HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar(20))) - а вот это работает как надо, спасибо большое
28 май 13, 19:30    [14361559]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
potap
Member

Откуда:
Сообщений: 30
Хм

select HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar(20))) from Klient


- дает то что хочется - 0x5880B09427F74C2BA85E0375AFD3B3B7251CF653

а
UPDATE Klient SET ID_Client = HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar(20))) 


получаем - XЂ°”'чL+Ё^uЇУі·%цS
28 май 13, 19:39    [14361586]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
potap, ну так второе - символьное представление первого, у вас же поле id_client типа varchar
приводите его к varbinary перед выводом
28 май 13, 19:51    [14361630]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
potap
Member

Откуда:
Сообщений: 30
Спасибо, буду ковырять
28 май 13, 20:01    [14361654]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
а если надо, чтобы в id_client шестнадцатеричное значение было именно в читабельном текстовом виде, то надо его явно конвертировать в varchar со стилем 1 или 2:
UPDATE Klient SET ID_Client = CONVERT(varchar(20), HashBytes('SHA1', FIO + CAST(BIRTHDAY AS varchar(20))), 1)
28 май 13, 20:01    [14361655]     Ответить | Цитировать Сообщить модератору
 Re: HashBytes и 2012 сервер  [new]
potap
Member

Откуда:
Сообщений: 30
Спасибо, вот этот вариант очень хорошо работает
28 май 13, 23:13    [14362149]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить