我使用以下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);";


当我尝试通过获取COLUMN_TIME时

cursor.getColumnIndex(GPSSqliteHelper.COLUMN_TIME)


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

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

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?

我完成了this教程(我的表创建语句基本上类似于那里的那个表)。

干杯

最佳答案

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

未在allColumns中声明COLUMN_TIME,应为:

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

10-08 17:28