SQLITE问题
table aa
a integer
B string
insert into aa(a, b) values(3, '1E10');
这样写入数据库的 会变成 3,10000000000
记得是在1E10前面加个什么字符就不会出现这种情况了
有人知道吗
[解决办法]
N
[解决办法]
加个N
[解决办法]
加个N!
[解决办法]
是什麽呀?注.
[解决办法]
楼主你这样写不就乐意了。
- SQL code
insert into aa(a, b) values(3, ' 1E10');
[解决办法]
- SQL code
-- =========================================-- -----------t_mac 小编------------- ---希望有天成为大虾---- -- =========================================IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbGOCREATE TABLE tb(a integer ,B nvarchar(100) )goinsert into tb (a, b) values(3, '1E10');goselect * from tb /*------------3 1E10-------*/
[解决办法]
- SQL code
N'
[解决办法]
- SQL code
-- =========================================-- -----------t_mac 小编------------- ---希望有天成为大虾---- -- =========================================IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbGOCREATE TABLE tb(a integer ,B nvarchar(100) )--这里的string 改成Nvarchargoinsert into tb (a, b) values(3, N'1E10');goselect * from tb /*------------3 1E10-------*/
[解决办法]
SQL 不会出现楼主的情况。
[解决办法]
- SQL code
DECLARE @TB TABLE(A INT, B VARCHAR(10))INSERT @TB VALUES(1, '1E10')SELECT * FROM @TB/*A B----------- ----------1 1E10*/
[解决办法]
有人用oracle试下看怎么样?
[解决办法]
[解决办法]
在插入的时候,把'1E10'再转化成字符类型的试一下。
[解决办法]
建议到其它数据库提问。
[解决办法]
[解决办法]
把String类型换成TEXT试试。
[解决办法]
[解决办法]
我测试过,没有这个问题,楼主的SQLITE是不是版本低了?
[解决办法]
或者楼主的插入语句是
insert into test1 values (1,1E10)
就会这样
我觉得这两种情况对数据库来说都是正常处理的了
[解决办法]
对了SQLite应该没有String类型,我使用varchar/nvarchar代替测试的
[解决办法]
由于“一个用户只允许连续回复3次。”,换个用户回复
用String作为数据类型真有楼主说的问题,建议改成varchar/nvarchar类型,类型规范些而且没有楼主说的问题
[解决办法]
破CSDN,不能连续回复了
[解决办法]
没有你所说的问题,建议你能给你的测试环境,否则别人很难猜出你的问题在哪儿?
- SQL code
sqlite> create table aa (a int,b varchar(100));sqlite> insert into aa(a, b) values(3, '1E10');sqlite> select * from aa;3|1E10sqlite>
[解决办法]
知道你的原因了!
估计你的建表语句是 create table aa (a integer,b string);
string 根本不是数据库中所支持的一种数据类型,虽然它是C++或java等程序语言中的一种数据类型。
因为sqlite 根本不认识你的这个 string 是什么,所有它就把这个string 类型自动转换为numeric类型了。
[解决办法]
刚开始搞数据库,看看,也顶顶