SQLite删除查询不起作用

时间:2015-01-30 07:04:30

标签: java android sqlite

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

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'))" });

请赐教!

由于

1 个答案:

答案 0 :(得分:3)

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

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

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