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''))'
我有一个简单的删除查询,它根据创建日期删除记录
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''))'