1

例如:如果我正在访问 SMS 数据库,则消息时间戳有一个“日期”字段。但是,假设我将具有较旧时间戳的消息加载到数据库中,我怎么知道它们是在后来的时间戳消息之后添加的?是否有我可以访问的表格行的修改或创建日期?

编辑和澄清:

SMS 表具有以下列:long_id、thread_id、address、person、date、protocol、read、status、type、reply_path_present、subject、body、service_center、locked、error_code 和 seen。

“日期”是指消息发送的日期,而不是消息添加到数据库的日期。Android 数据库 (SQLite) 是否会跟踪在数据库中添加或修改数据的时间?如果是这样,我该如何访问它?如果没有,只需添加/删除/更新数据而不记录,这也是一个答案。

4

2 回答 2

3

您可以通过创建一个包含当前日期和时间的列来解决此问题(当前表示当前,该行已插入):

create table mytable(_id int primary key, date datetime default current_timestamp);

这将在每一行中产生一个指向插入时刻的时间戳

另一种解决方案是简单地将当前时间戳从 SQLiteOpenHelper 中插入,例如:

ContentValues values = new ContentValues(2);
values.put(COLUMN_NAME_ID, id);
values.put(COLUMN_NAME_TITLE, title);
values.put(COLUMN_NAME_CREATED_DATE, System.currentTimeMillis());

dbHelper.getWritableDatabase().insert(TABLE_NAME, null, values);
于 2014-10-06T19:33:47.183 回答
1

sqlite 中没有插入或更新行的日期。

于 2012-07-07T21:49:05.380 回答