我想使用按日期过滤器从数据库表中选择一些数据(日期列为:[searchDate] DATETIME DEFAULT CURRENT_TIMESTAMP,)
在这张图片中,我正在使用SQLite Expert和按日期过滤:
这段代码用于获取当前年份和月份:
DateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy");
DateFormat MONTH_FORMAT = new SimpleDateFormat("MM");
YEAR_DATE = YEAR_FORMAT.format(new Date());
MONTH_DATE = MONTH_FORMAT.format(new Date());
Date date = new Date();
Log.d("Month", YEAR_FORMAT.format(date) + " " + MONTH_FORMAT.format(date));
和我的应用程序中的游标查询获取按日期(当前年份)筛选的列表:
public List<Moment> MOMENT_YEAR(String year) {
try {
Moment MOMENT_TABLE;
List<Moment> MOMENTS = new ArrayList<>();
DB_HELPER.openDatabase();
db.beginTransaction();
Cursor MOMENT_CURSOR = db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) =" + year, null);
db.setTransactionSuccessful();
MOMENT_CURSOR.moveToFirst();
while (!MOMENT_CURSOR.isAfterLast()) {
MOMENT_TABLE = new Moment(MOMENT_CURSOR.getInt(0), MOMENT_CURSOR.getString(1), MOMENT_CURSOR.getString(2), MOMENT_CURSOR.getString(3),
MOMENT_CURSOR.getString(4), MOMENT_CURSOR.getString(5), MOMENT_CURSOR.getInt(6), MOMENT_CURSOR.getInt(7) != 0);
MOMENTS.add(MOMENT_TABLE);
MOMENT_CURSOR.moveToNext();
}
MOMENT_CURSOR.close();
return MOMENTS;
} catch (Exception e) {
return null;
} finally {
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
我试过了,但没有任何反应,列表为空(空) .
我今年的日期最多 .
2 回答
不清楚吗?在查询中使用SQL字符串分隔符(
'
)包围year
变量 .或者只是使用参数查询(Android将为您处理字符串分隔符) .
SELECT * FROM transactionList WHERE transactionDate BETWEEN'2018-04-29'AND'2018-05-29'LIMIT 20;
尝试这个查询,它会像哇:)
请检查问题
Filter Not Working on date