在数据库中,我以 3 列的形式保存了日期:Year、Month、Day_of_Month(我知道这可能不是保存日期的最佳方式,但我进行了某些其他适合这种格式的查询。)
现在我希望获取日期在两个指定日期之间的所有行。我经历了以前的 stackoverflow 问题,但大多数都将日期保存为单个实体。
这就是我尝试的方式:
我有一个 MySqLiteHelper 类,其中声明了所有列名。我也在那里创建表格。COLUMN_DATE_YEAR、COLUMN_DATE_MONTH 和 COLUMN_DATE_DAY 是存储列名的字符串。
int fyear, fmonth, fday; // I populate those initial date values
int tyear, tmonth, tday; // I populate those target date values
String selection = MySQLiteHelper.COLUMN_DATE_YEAR + " >= '"+fyear+"' AND "+ MySQLiteHelper.COLUMN_DATE_DAY + " >= '"+fday+"' AND "
+ MySQLiteHelper.COLUMN_DATE_MONTH + " >= '"+fmonth+"' AND " + MySQLiteHelper.COLUMN_DATE_YEAR + " <= '"+tyear+"' AND "
+ MySQLiteHelper.COLUMN_DATE_DAY + " <= '"+ tday+"' AND "+ MySQLiteHelper.COLUMN_DATE_MONTH + " <= '"+tmonth+"'";
String []column = {MySQLiteHelper.COLUMN_MOOD_LEVEL};
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAMES, column, selection, null, null, null, null);
现在,这种方法的问题在于,它不会为 2013 年 2 月 25 日至 2013 年 3 月 17 日之间的查询提供任何结果,因为日期为 25 日 > 17 日,即使月份 2 < 3 也是如此。这可能需要某种嵌套的 where 子句。但是我无法使用“.query”方法形成嵌套的“Where”。
请提出一种查询存储在这两个日期之间的条目的方法。提前致谢。