Почему функция SQLite hex() возвращает 31 для hex (1).sqlite hex (1) возвращает 31?
Например я:
select hex(1) from mytable;
И я получаю 31, но она не должна возвращать 1?
Thanks, Carlos.
Почему функция SQLite hex() возвращает 31 для hex (1).sqlite hex (1) возвращает 31?
Например я:
select hex(1) from mytable;
И я получаю 31, но она не должна возвращать 1?
Thanks, Carlos.
Потому что:
шестигранных() Функция интерпретирует свой аргумент как BLOB и возвращает строку которая является верхним регистром шестнадцатеричного отображения содержимого из этого сгустка.
Функция hex() преобразует значение BLOB в шестнадцатеричное текстовое представление. Данные параметров считаются BLOB. Если это не BLOB, он будет преобразован в один. Возвращаемое текстовое значение будет содержать два шестнадцатеричных символа для каждого байта в BLOB.
Код ASCII '1' составляет 49. Дек 49 - это шестнадцатеричный 31. Это то, что вы получаете. –