我想执行这样的查询......
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
答案 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);