2012-04-23 35 views
1

我有我的Android应用程序中有一个“修改”列的SQLite表。它基本上存储当前行(第一次插入或更新)的日期和时间。在android中更新sqlite列与当前日期时间

如果我在Android中使用update() SQLite DB的功能,我无法弄清楚如何在ContentValues参数中设置日期时间值。

如果我使用execSql()方法,我可以使用DATETIME() sql函数来获取当前时间,将其设置为“MODIFIED”列。但是这个函数没有返回值。我不知道更新是否成功。

任何有什么建议?

回答

1

另一种方法是创建一个“TRIGGER”的更新在每个使用SQLite本身“更新”自动修改,read about it here.

+0

这是我现在正在尝试。这似乎更合适。 – 2012-04-23 03:27:31

1

你只是必须这样做:

ContentValues values = new ContentValues(); 
values.put("modified", currentTime); 
db.update("table", values, "_id = XXX", null); 

与您要用来更新行的条件更换_id = XXX。更新方法返回更新的行数。

此外,您可以使用整数代替DATETIME(因为它们实际上不存在于sqlite http://www.sqlite.org/datatype3.html)类型的该列,并且通过System.currentTimeMillis()作为currentTime

+0

的“修饰的”初始值是这种格式'YYYY-MM-DD HH的:MM :SS',所以如果我更新到'System.currentTimeMillis()',它将有不同的格式,我的order by子句将不起作用。 – 2012-04-23 02:45:22

+0

然后只是使用这种格式,有什么问题?看看'SimpleDateFormat'类;) – Cristian 2012-04-23 02:53:27

相关问题