Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用日期过滤器从SQLite中选择一些数据?_Android_Sqlite_Datetime_Android Sqlite - Fatal编程技术网

Android 使用日期过滤器从SQLite中选择一些数据?

Android 使用日期过滤器从SQLite中选择一些数据?,android,sqlite,datetime,android-sqlite,Android,Sqlite,Datetime,Android Sqlite,我想使用“按日期筛选”从数据库表中选择一些数据(日期列为:[searchDate]DATETIME DEFAULT CURRENT_TIMESTAMP,) 在这张图片中,我使用了SQLite专家和一个按日期筛选的过滤器: 此代码用于获取当前年份和月份: DateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy"); DateFormat MONTH_FORMAT = new SimpleDateFormat("MM");

我想使用“按日期筛选”从数据库表中选择一些数据(日期列为:[searchDate]DATETIME DEFAULT CURRENT_TIMESTAMP,)

在这张图片中,我使用了SQLite专家和一个按日期筛选的过滤器:

此代码用于获取当前年份和月份:

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));
以及my app中的光标查询,用于获取按日期(当前年份)筛选的列表:

公共列表时刻年(字符串年){
试一试{
力矩表;
列表矩=新的ArrayList();
DB_HELPER.openDatabase();
db.beginTransaction();
游标时刻\u Cursor=db.rawQuery(“从TBL时刻中选择*其中strftime(“%Y”,searchDate)=“+年,空);
db.setTransactionSuccessful();
光标移动到第一个()的力矩;
而(!MOMENT_CURSOR.isAfterLast()){
力矩表=新力矩(力矩游标.getInt(0),力矩游标.getString(1),力矩游标.getString(2),力矩游标.getString(3),
力矩游标.getString(4),力矩游标.getString(5),力矩游标.getInt(6),力矩游标.getInt(7)!=0;
力矩。添加(力矩表);
光标的力矩。moveToNext();
}
力矩_光标。关闭();
返回时刻;
}捕获(例外e){
返回null;
}最后{
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
我试过了,但什么也没发生,列表为空。

我今年的日期最多。

不清楚吗?在查询中,用SQL字符串分隔符(
)包围
变量

Cursor MOMENT_CURSOR = 
    db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) = '" + year + "'", null);
或者简单地使用参数化查询(字符串分隔符将由Android处理)


从交易列表中选择*,其中交易日期介于“2018-04-29”和“2018-05-29”之间,限制为20

试试这个查询,它会像哇:)

请核对问题

Cursor MOMENT_CURSOR = 
    db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) = '" + year + "'", null);
Cursor MOMENT_CURSOR = 
    db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) = ?", new String[]{year});