【发布时间】:2014-08-20 08:34:16
【问题描述】:
我必须根据当前月份从 ContentProvider 获取数据。为了获取数据,我使用了以下查询:
SELECT * FROM Festivals
WHERE strftime('%Y-%m-%d',fest_date) >= date('now','-6 days') AND
strftime('%Y-%m-%d',fest_date)<=date('now') order by fest_date
我尝试在 CursorLoader 中编写如下:
new CursorLoader(this, FestivalContract.Festivals.CONTENT_URI,
PROJECTION, "strftime('%Y-%m-%d',fest_date)>=? AND strftime('%Y-%m-%d',fest_date)<=?", new String[] { "date('now','-6 days')", "date('now')" },
FestivalContract.Festivals.FestivalColumns.FEST_NAME + " asc");
但是,它返回了所有记录。我找不到我的代码有什么问题。
【问题讨论】:
-
您将
fest_date变量作为字符串传递。"strftime('%Y-%m-%d',fest_date)>=? AND strftime('%Y-%m-%d',fest_date)<=?", new String[] { "date('now','-6 days')", "date('now')" } -
对不起,我的错,我忘了说,fest_date 是我的数据库表中的一列的名称。
-
了解,但有任何替代方法。因为,我不想一次获取全年的数据,因为这只会浪费。我必须在日历上突出显示将有任何活动的日期
-
@Downvoter 有理由投反对票吗?
-
只需尝试在查询参数中输入一些值而不是
new String[] { "date('now','-6 days')", "date('now')" }以查看它是否有效,这样您就可以检查您的问题是否存在。
标签: android sqlite android-contentprovider android-cursorloader