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

时间:2017-08-20 08:32:57

标签: android sqlite datetime android-sqlite

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

在这张照片中,我使用SQLite Expert和按日期过滤: enter image description here

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

root = tree.getroot()

print(root.find('name').text)
print(root.find('coord').attrib.get('lat','n/a'))
print(root.find('coord').attrib.get('lon','n/a'))

# Output
POI 2017-07-03 09:37:11nass
47.220430
8.951071

和我的应用程序中的游标查询,用于获取按日期(当前年份)过滤的列表:

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));

我试过,但没有任何反应,列表为空(空) 我今年的约会时间很多。

2 个答案:

答案 0 :(得分:1)

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

Cursor MOMENT_CURSOR = 
    db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) = '" + year + "'", null);

或者只是使用参数化查询(Android将为您处理字符串分隔符。)

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

答案 1 :(得分:0)

SELECT * FROM transactionList WHERE transactionDate BETWEEN'2018-04-29'EN'2018-05-29'LIMIT 20;

尝试此查询,它将像wow:)

一样工作

请检查问题

Filter Not Working on date