2

我使用以下 sql 语句创建了一个数据库

private static final String DATABASE_CREATE = "create table "+ TABLE_USERLOCATION + "("
+ COLUMN_ID+" integer primary key autoincrement, "
+ COLUMN_LONGITUDE +" real not null, "
+ COLUMN_LATITUDE+" real not null, "
+ COLUMN_TIME + " timestamp not null default current_timestamp);";

当我尝试通过

cursor.getColumnIndex(GPSSqliteHelper.COLUMN_TIME)

我得到-1(显然是一个错误)

但是当我 cd 进入模拟器中的数据库目录并查看所有条目时,我看到已添加时间戳:

1|2.71828|3.14159166666667|2013-04-09 00:05:50

2|2.71828|3.14159166666667|2013-04-09 00:35:09

如何访问日期以及为什么 getColumnCount() 返回 3 而不是 4?

我完成了教程(我的表创建语句与那里介绍的基本相似)。

干杯

4

2 回答 2

2

当然为时已晚,但万一有人来这里遇到同样的问题......

COLUMN_TIME 没有在 allColumns 中声明,它应该是:

private String[] allColumns = {GPSSqliteHelper.COLUMN_ID, GPSSqliteHelper.COLUMN_LONGITUDE, GPSSqliteHelper.COLUMN_LATITUDE, GPSSqliteHelper.COLUMN_TIME}

于 2013-07-12T08:02:12.407 回答
-3

sqlite 不使用时间戳类型。您应该将日期创建为文本。看这里

这就是我所做的,然后您可以在代码中随意操作日期字符串。

于 2013-04-09T16:48:31.020 回答