Sqlite min,max在ado.net中返回错误的结果

时间:2012-12-21 13:50:27

标签: c# sqlite aggregate-functions max min

我正在使用ADO.NET Data Provider for SQLite: 1.0.82.0

聚合函数返回错误的结果:

###Table structure###
CREATE TABLE ta85 (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, date INTEGER, _90 REAL, _100 REAL)

###Rows: ###
select * from ta85

id, date, _90, _100

"1","1355480577920","4,4","2"

"2","1355480877929","15","5,2"

"3","1355481177937","26,4","9,4"

------------------

现在,如果我想为每列选择最大值,最小值:

SELECT date,MIN(_90), MAX(_90),MIN(_100), MAX(_100) FROM ta85 WHERE date between 1355480296794 and 1355481366266

返回:

"1355481177937","15","4,4","2","9,4" 

_100正确但列_90错误。

解决方案

感谢您的所有答案。你是对的。

cmd.Parameters.AddWithValue(columname,"");

cmd.Parameters.AddWithValue(columname,0.0d);

2 个答案:

答案 0 :(得分:1)

您正在使用错误的文字类型将浮点数插入数据库,并且您正在进行字符串比较。使用点而不是逗号。

请记住,SQLite非常loose with types

  

SQLite使用更通用的动态类型系统。在SQLite中,值的数据类型与值本身相关联,而不是与其容器相关联。

SQL小提琴here

答案 1 :(得分:0)

您似乎在比较字符串而不是数字。也许将您的号码格式化为“4.4”而不是“4,4”