我的Android应用程序中有一个SQLite表,它有一个“MODIFIED”列。它基本上存储了当前行首次插入或更新的时间(日期和时间)。
如果我在android中使用SQLite DB的update()
函数,我无法弄清楚如何在ContentValues
参数中添加日期时间值。
如果我使用execSql()
方法,我可以使用DATETIME()
sql函数将当前时间设置为“MODIFIED”列。但是这个函数没有返回值。我不知道更新是否成功。
有任何建议吗?
答案 0 :(得分:1)
你必须做以下事情:
ContentValues values = new ContentValues();
values.put("modified", currentTime);
db.update("table", values, "_id = XXX", null);
将_id = XXX
替换为您要用于更新行的条件。 Update方法返回更新的行数。
此外,您可以使用整数而不是DATETIME(因为它们实际上不存在于sqlite http://www.sqlite.org/datatype3.html中)该列的类型,并将System.currentTimeMillis()
作为currentTime
传递。
答案 1 :(得分:1)
另一种方法是创建一个'TRIGGER',使用SQLite本身read about it here.
在每个'UPDATE'上自动更新MODIFIED