Android内容提供商修改/创建日期

时间:2012-07-07 19:39:28

标签: java android database android-contentprovider android-cursor

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

编辑和澄清:

SMS表包含以下列:long _id,thread_id,address,person,date,protocol,read,status,type,reply_path_present,subject,body,service_center,locked,error_code,&可见

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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