如果我在查询中输入"date('now', 'localtime')",我无法得到任何结果。
我的原始代码是:
Cursor record = db.query(RECORD_TABLE, null, date(UTC_DATETIME,'localtime') = ? ",
new String[]{"date('now', 'localtime')"},null,null,null);
它不返回任何结果。
但是我可以得到结果,如果我使用:
Cursor record = db.query(RECORD_TABLE,null, date(UTC_DATETIME,'localtime') = ? ",
new String[]{"2014-05-13"},null,null,null);
是否有一种方法,我可以使用"日期('现在','本地时间')"在我的查询?
参数的全部意义在于防止它们的值被解释为SQL表达式。
要调用SQL函数,必须将其放入SQL字符串中:
Cursor record = db.query(RECORD_TABLE, null,
"date(UTC_DATETIME,'localtime') = date('now', 'localtime')",
null,null,null,null);
请注意,localtime
转换以相同的方式影响两个值,因此您可以省略它:
Cursor record = db.query(RECORD_TABLE, null,
"date(UTC_DATETIME) = date('now')",
null,null,null,null);
或甚至省略第一个date
调用,如果UTC_DATETIME
列已经在正确的yyyy-MM-dd
格式中:
Cursor record = db.query(RECORD_TABLE, null,
"UTC_DATETIME = date('now')",
null,null,null,null);