android:db.query语法,适用于多种条件

时间:2013-03-08 23:24:39

标签: android android-sqlite

我在数据库中有一个表格,如下所示:

db.execSQL(" CREATE TABLE IF NOT EXISTS "
        + DATABASE_TABLE + " ( " + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"   + KEY_DATE + " TEXT, " + KEY_CATEGORY + " TEXT, "
        + KEY_SUB_CATEGORY + " TEXT, " + KEY_AMOUNT + " REAL, "
        + KEY_NOTE + " TEXT " + " );");

我想获取KEY_CATEGORY =(“收入”或“费用”)的trans_amount值 和KEY_DATE =“2013年3月”。

我如何查询才能获得它?我目前正在使用

db.ourDatabase.query(DATABASE_TABLE, 
   new String[] { KEY_AMOUNT } , " ( " 
   + KEY_CATEGORY + " = ? OR " 
   + KEY_CATEGORY + " = ? ) AND " + KEY_DATE + " = ? " , 
  new String[] { " VariableExpenses " , " FixedExpenses ", " March/08/2013 " }, 
  null, null, null, null);

但我没有得到KEY_AMOUNT个值。我在查询中遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

最好将日期存储为INTEGER,自纪元(由calendar.getTimeInMillis()date.getTime()返回)后的毫秒数或作为单独的月/年列存储,如果您只关心月份和年份而不是文本由于日期的格式化,您似乎没有收到任何行:您的查询显示“2013年3月/ 2013”​​,而您说的是“2013年3月”。