1

我正在开发一个 android 应用程序,在该应用程序中,我每天都想检查表中存在的 1 个月前的记录,如果我想从表中删除 1 个月前的记录,我将插入时间保存为表中的长值(System.currenttimemillis)它的数据类型是真实的。sq-lite中是否有任何直接查询可以通过指定间隔来删除旧记录。?

我在 MySQL 中得到以下查询,这在 sq-lite 中有效吗?请帮我...

     DELETE FROM [table] WHERE [InsertTime] < DATE_SUB(NOW(), INTERVAL 1 MONTH);
4

2 回答 2

3

像这样的查询应该可以完成这项工作:

DELETE FROM <table> WHERE datetime(<dateColumn> / 1000, 'unixepoch') < datetime('now', '-1 month')

除以1000是必要的,因为您以毫秒为单位存储时间戳,但 SQLite 理解unixepoch.

于 2013-07-14T06:21:37.997 回答
0

这会从当前日期减去一个月。

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);

一旦你有日期执行删除查询

于 2013-07-12T11:26:45.130 回答