sqlite十六进制(1)返回31?

sqlite十六进制(1)返回31?,sqlite,function,hex,Sqlite,Function,Hex,为什么SQLite hex()函数为hex(1)返回31 例如,我: select hex(1) from mytable; 我得到31,但它不应该返回1吗 谢谢, 卡洛斯。因为: 函数的作用是:将其参数解释为BLOB并返回 字符串,该字符串是内容的大写十六进制呈现形式 那一团 函数的作用是:将BLOB值转换为十六进制文本表示形式。假设参数数据为BLOB如果不是BLOB,它将被转换为一个。返回的文本值将包含BLOB中每个字节的两个十六进制字符。确定。。。是否可以获取十六进制(1)=1?@QLa

为什么SQLite hex()函数为hex(1)返回31

例如,我:

select hex(1) from mytable;
我得到31,但它不应该返回1吗

谢谢, 卡洛斯。

因为:

函数的作用是:将其参数解释为BLOB并返回 字符串,该字符串是内容的大写十六进制呈现形式 那一团


函数的作用是:将BLOB值转换为十六进制文本表示形式。假设参数数据为BLOB如果不是BLOB,它将被转换为一个。返回的文本值将包含BLOB中每个字节的两个十六进制字符。

确定。。。是否可以获取十六进制(1)=1?@QLands Hex()函数将BLOB值转换为十六进制文本表示形式。。。所以这似乎是不可能的…其他内部背景:sqlite将所有内容存储为文本。@QLands:您可以轻松编写自己的
my_hex()
UDF来获得该结果。ASCII“1”的代码是49。十二月49日是十六进制31。这就是你得到的。