sqlite3选择BIGINT返回工程表示

时间:2013-08-15 14:30:57

标签: sqlite

我使用了BIGINT中的所有64位,并遇到了将值存储在sqlite3 db中的问题。这些值似乎存储得很好,我可以使用原始值来更新记录,但是我无法使用sqlite3_exec或命令行sqlite3来获取值。

例如:

sqlite> create table mytable (bigval BIGINT, test INT);
sqlite> insert into mytable (bigval, test) values (16791083265364386151, 1);
sqlite> update mytable set test=2 where bigval=16791083265364386151;
sqlite> select * from mytable;
1.67910832653644e+19|2

如何强制mysql输出整个int?

---编辑---

似乎我使用了unsigned int的所有64位。是否有未签名的BIGINT类型?

2 个答案:

答案 0 :(得分:1)

SQLite最大的数据类型是signed 64-bit integer, or floating-point

如果要准确存储较大的数字,则必须将它们存储为字符串。

答案 1 :(得分:0)

或在进入sqlite时强制转换,并在读取时返回uint_64。这避免了sqlite转换为大型无符号数的浮点数。

相关问题