带有日期的sqlite的Android查询

时间:2013-08-27 10:00:36

标签: android sqlite date

我不明白为什么我的查询在Java(android)中不起作用。 我想访问一个sqlite数据库,但我认为问题是关于“WHERE”子句。

Cursor cQuery = db.query("PLUGBATTERY", new String[] {
                        "strftime('%s',date)", "code", "state","startup" }, "strftime('%Y-%m-%d',date)=="+DATE_FORMAT_DATE.format(currentC.getTime()), null, null,null, "strftime('%s',date)");
我在调试视图中的

DATE_FORMAT_DATE.format(currentC.getTime())= 2013-08-22

也许我可以从我的应用程序代码中测试我的查询,但我不知道该怎么做...

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

在SQL中,必须编写字符串'with quotes'

您可以使用参数来避免格式​​化此类问题(以及SQL injection attacks):

cursor = db.query("PLUGBATTERY",
                  new String[] { "strftime('%s',date)", "code", "state","startup" },
                  "date(date) = ?",
                  new String[] { DATE_FORMAT_DATE.format(currentC.getTime()) },
                  null, null, "date");