【问题标题】:Android query for sqlite with dateAndroid查询带有日期的sqlite
【发布时间】:2013-08-27 10:00:35
【问题描述】:

我不明白为什么我的查询在 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

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

感谢您的帮助。

【问题讨论】:

    标签: android sqlite date


    【解决方案1】:

    在 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2014-09-22
      • 2019-10-14
      相关资源
      最近更新 更多