在SQLite数据库中存储NaN值

时间:2013-03-22 11:57:53

标签: sqlite system.data.sqlite

我想将NaN值插入SQLite数据库。

我有Ent表,包含Id,StringColumn和DoubleColumn(不可为空),我尝试使用以下SQL语句:

INSERT INTO Ent (Id, StringColumn, DoubleColumn) VALUES (1, 'NaN test', ????)

我不知道该代替'????'存储NaN。

我正在使用System.Data.SQLite访问数据库 - 也许这也很重要?

4 个答案:

答案 0 :(得分:8)

我问过SQLite的人如何处理这个问题:http://system.data.sqlite.org/index.html/tktview/e06c4caff3c433c80616ae5c6df63fc830825e59。 他们添加了一个新的连接标志:“GetAllAsText”,现在可以存储NaN以及其他(Infinity,-Infinity)。

答案 1 :(得分:5)

SQLite相当......松散...关于数据类型。随意将“NaN”放入定义为“double”的列中。或“无限”。或者“双重”,就此而言。 SQLite并不关心。

答案 2 :(得分:2)

SQLite没有NaN值的文本表示。

在SQL中,特殊NULL在计算中的行为类似,可以起到同样的作用。

答案 3 :(得分:2)

我目前使用的技巧是在Real列上存储-Infinity,因为null不够或不允许(因为你在该列上有“not null”)。