从SQLite表中删除1个月的记录

时间:2013-07-12 11:12:30

标签: android sqlite

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

我在MySQL中获得以下查询是否适用于sq-lite?请帮帮我......

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

2 个答案:

答案 0 :(得分:3)

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

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

由于您以毫秒为单位存储时间戳,因此必须按1000进行除法,但SQLite会理解unixepoch的秒数。

答案 1 :(得分:0)

从当前日期减去一个月。

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

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