SQLite:选择值为>;=2^31失败

SQLite:选择值为>;=2^31失败,sqlite,node-sqlite3,Sqlite,Node Sqlite3,根据,数字列可以存储大小不超过8字节的整数。但是,在存储值后,我在实际选择这些值时遇到困难: create table x (a integer, b integer, c integer); insert into x values ('2147483647', '2147483647', '2147483647'); select * from x; +------------+------------+------------+ | a | b | c

根据,数字列可以存储大小不超过8字节的整数。但是,在存储值后,我在实际选择这些值时遇到困难:

create table x (a integer, b integer, c integer);
insert into x values ('2147483647', '2147483647', '2147483647');
select * from x;

+------------+------------+------------+
| a          | b          | c          |
+------------+------------+------------+
| 2147483647 | 2147483647 | 2147483647 |
+------------+------------+------------+
1 row in set

insert into x values ('2147483648', '2147483649', '2147483648');
select * from x;
什么也不发生-不返回任何行

select count(1) from x;

+----------+
| count(1) |
+----------+
| 2        |
+----------+
1 row in set

select substr(a, 1, 5) from x;
+-----------------+
| substr(a, 1, 5) |
+-----------------+
| 21474           |
| 21474           |
+-----------------
如何在保留整数数据类型的同时正确检索实际值?(将其更改为真实或文本效果与预期一致,但是否没有其他选择?)


编辑:我在上面的演示中使用了Navicat,但在实际应用中也遇到了问题(使用)。

选择计数和子字符串旨在显示数据已存储,但无法以原始形式检索。您好,我想你没有领会我的观点——SQLite声称其integer数据类型可以存储多达2^63-1位的有符号整数,远高于我在这里使用的示例,但我的问题是,一旦值超过2^32-1,检索数据就会遇到困难,这完全是浪费时间——如果您没有SQLite方面的经验,我将在这里结束讨论。无法使用sqlite3 shell进行复制--您什么也不做--不返回任何行。案例为我提供了两行以及预期值。