Android中的SQLite查询删除

时间:2016-03-22 13:44:56

标签: android sqlite android-sqlite

我想执行这样的查询......

delete FROM employees where hired_on >= date('now', 'start of day', '-30 days');

它试图执行

String dateLimit = "date('now', 'start of day', '-30 days')";

database.delete(TABLE_NAME,COLUMN_NAME + " >= ? ", new String[]{dateLimit});

database.execSQL("DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_NAME  + " >= " + dateLimit);

但没有奏效....

我该怎么做?

提前感谢......

修改

列的示例数据是

 2016-03-21 06:22:36
 2016-03-22 07:47:19
 2015-12-22 17:42:23
 2015-12-21 19:01:05
 2015-06-28 09:46:16

,列类型为text

1 个答案:

答案 0 :(得分:2)

参数只能用于文字值。 您尝试执行的内容与:

相同
delete FROM employees where hired_on >= 'date(''now'', ''start of day'', ''-30 days'')';

>=之后的所有内容都是单个字符串。

要执行date之类的SQL函数,必须将其直接写入SQL查询:

db.delete(TABLE_NAME,
          COLUMN_NAME + " >= date('now', 'start of day', '-30 days')",
          null);