【问题标题】:How to use rawQuery() with a WHERE clause to find a specific date from a given column?如何使用带有 WHERE 子句的 rawQuery() 从给定列中查找特定日期?
【发布时间】:2016-12-14 15:03:03
【问题描述】:

我有一个如下所述的查询,但是当我在光标上使用 getCount() 函数时,光标返回 0。

请帮助我正确编写查询。

String DT_Value = SetAlarm.Today_Date;
SQLiteDatabase sqlDB = this.getWritableDatabase();
Cursor c = sqlDB.rawQuery("SELECT * from NAME WHERE DATE= " +DT_Value ,null);
return c;

我的 DT_Value 值是 16-08-08,该值在我的表 NAME 的第 4 列中可用,但是当我调用函数 c.getCount() 时,我得到的计数为 0。

【问题讨论】:

  • 您如何验证该值是否在数据库中? NAME 表的列名为 DATE 吗?
  • My DT_Value value was "16-08-08" 那么你的时间字符串是错误的。应该是"2016-08-08"。请注意包含字符串值的单引号(或使用绑定参数)。供您参考:sqlite.org/lang_datefunc.html
  • 我有查看数据库的功能,所以我在数据库中找到了该值
  • 我已使用以下函数将日期值从 2016-08-08 格式化为 16-08-08 public static String Today_Date = new SimpleDateFormat("yy-MM-dd").format(new日期()).toString();

标签: android database sqlite android-sqlite sqliteopenhelper


【解决方案1】:

我得到了如下解决方案

 String[] params = new String[]{ Today_Date };
        SQLiteDatabase sqlDB = this.getWritableDatabase();
        Cursor c = sqlDB.rawQuery("SELECT * FROM NAME WHERE DATE =  ?", params);
return c;

谢谢各位...

【讨论】:

    【解决方案2】:

    尝试使用修改后的查询

    Cursor c = sqlDB.rawQuery("SELECT * from NAME WHERE DATE='"+DT_Value +"'",null);
    

    【讨论】:

      【解决方案3】:
      public Cursor getuser(String name) {
      
          SQLiteDatabase db = getReadableDatabase();
          String qry = "Select * from UserDetails where name ='" + name + "';";
          Cursor c     = db.rawQuery(qry, null);
              return c;
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多