我有一个简单的删除查询,它根据创建日期删除记录
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'))" });
请赐教!
由于
答案 0 :(得分:3)
您可以使用?
来绑定文字。例如,您在SQL中用'single quotes'
写的字符串文字。您不能将?
用于绑定STRFTIME('%d-%m-%Y',DATE('Now'))
等表达式。
基本上,当您尝试绑定表达式但绑定为字符串文字时,查询将变为
DELETE FROM TableName WHERE CreatedDate ='STRFTIME(''%d-%m-%Y'',DATE(''Now''))'