sqlite时间戳

时间:2013-04-09 16:16:27

标签: android sqlite android-sqlite

我使用以下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教程(我的表创建语句与那里提供的语句基本类似)。

干杯

2 个答案:

答案 0 :(得分:2)

当然为时已晚,但如果有人带着同样的问题来到这里......

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

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

答案 1 :(得分:-3)

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

这就是我的工作,然后您可以在代码中按照自己的意愿操作日期字符串。