我在 sqllite 数据库中以 TEXT 的形式存储了日期。格式为“dd-mm-yyyy”。我正在查询以选择日期在两个给定日期之间的行。当我使用属于同一月份的查询日期查询数据库时,我得到了结果。但是,当日期范围属于不同月份时,它不会返回任何行。例如:
当日期类似于:29-03-2013 到 05-04-2013 时,就会出现问题。当日期介于 02-04-2013 和 05-04-2013 之间时,它会成功返回行。有在所有日期输入的行。
以下是我尝试过的方法:
// MySQLiteHelper.COLUMN_DATE_DATE stores column name which is 'date'
// startdate and end date are string in form of mm-dd-yyyy
// MySQLiteHelper.TABLE_NAMES contain table name string
// MySQLiteHelper.COLUMN_MOOD_LEVEL is another column that I wish to get in return
我尝试使用 BETWEEN 子句和 <= 和 >=,但对输出没有影响。方法如下:
// Method 1:
String selection = MySQLiteHelper.COLUMN_DATE_DATE + " BETWEEN '"+startdate+"' AND '"+ enddate+"' ";
// Method 2:
String selection = MySQLiteHelper.COLUMN_DATE_DATE + " >= '"+startdate+"' AND "+MySQLiteHelper.COLUMN_DATE_DATE+" <= '"+ enddate+"' ";
String []colum = {MySQLiteHelper.COLUMN_MOOD_LEVEL};
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAMES, colum, selection, null, null, null, null);
当我使用
cursor.getCount()
要查看返回的行数,它会给出 0。尽管在这些日期之间存在条目。
他们是我缺少的一些基本比较问题吗?我尝试查看以前的一些问题,但没有解决。我非常感谢您的帮助。