SQLite 删除查询不起作用

SQLite delete query not working

我有一个简单的删除查询,它根据创建日期删除记录

int result = db.delete(TableName,"CreatedDate=?",new String[] { "STRFTIME('%d-%m-%Y', DATETIME('now'))" });

以上查询无效。

但是当我用这种格式写同样的东西时

DELETE FROM TableName WHERE CreatedDate =STRFTIME('%d-%m-%Y',DATE('Now'))

现在可以使用了。

我无法理解为什么一个可以工作而另一个不能。我缺少什么?

我的另一个问题是这一行生成的查询背后的问题

db.delete(TableName,"CreatedDate=?",new String[] { "STRFTIME('%d-%m-%Y', DATETIME('now'))" });

请赐教!

谢谢

您可以使用 ? 来绑定文字。例如,您将在 'single quotes' 中写入 SQL 中的字符串文字。您不能将 ? 用于绑定表达式,例如 STRFTIME('%d-%m-%Y',DATE('Now')).

基本上,当您尝试绑定表达式但它被绑定为字符串文字时,查询变为

DELETE FROM TableName WHERE CreatedDate ='STRFTIME(''%d-%m-%Y'',DATE(''Now''))'