我正在开发一个Android应用程序,其中每天我想检查表中存在的1个月旧记录,如果我想从表中删除1个月的旧记录,我将插入时间保存为长值(System.currenttimemillis)在表中,其数据类型为REAL。是否有任何直接查询在sq-lite中通过指定interval来删除旧记录。?
我在MySQL中获得以下查询是否适用于sq-lite?请帮帮我......
DELETE FROM [table] WHERE [InsertTime] < DATE_SUB(NOW(), INTERVAL 1 MONTH);
答案 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);
一旦你有日期执行删除查询