2012-04-23 37 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

相關問題