我使用以下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(显然是错误)
但是当我在我的模拟器中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?
我完成了this教程(我的表创建语句与那里提供的语句基本类似)。
干杯
答案 0 :(得分:2)
当然为时已晚,但如果有人带着同样的问题来到这里......
COLUMN_TIME未在allColumns中声明,它应该是:
private String[] allColumns = {GPSSqliteHelper.COLUMN_ID, GPSSqliteHelper.COLUMN_LONGITUDE, GPSSqliteHelper.COLUMN_LATITUDE, GPSSqliteHelper.COLUMN_TIME}
答案 1 :(得分:-3)
sqlite不使用时间戳类型。您应该将日期创建为文本。见here
这就是我的工作,然后您可以在代码中按照自己的意愿操作日期字符串。