Android无法在查询中使用data功能



如果我在查询中输入"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);

最新更新