使用JDOQL在开始日期和结束日期之间过滤日期属性

时间:2010-03-02 13:36:52

标签: jdoql

我想对一个函数进行编码,以获取Entry字段位于datebeginPeriod之间的endPeriod个对象的列表。我在一个与之配合使用的代码段下面发布一个黑客。我必须从开始日期开始减去一天。似乎条件不好或不相同都不起作用。

我知道为什么会遇到这个问题?

public static List<Entry> getEntries(Date beginPeriod, Date endPeriod) {
/* TODO 
 * The great or equal condition does not seem to work in the filter below
 * Substract a day and it seems to work 
 */
Calendar calendar = Calendar.getInstance();
calendar.set(beginPeriod.getYear(), beginPeriod.getMonth(), beginPeriod.getDate() - 1);
beginPeriod = calendar.getTime();

PersistenceManager pm = JdoUtil.getPm();
Query q = pm.newQuery(Entry.class);     
q.setFilter("this.date >= beginPeriodParam && this.date <= endPeriodParam");
q.declareParameters("java.util.Date beginPeriodParam, java.util.Date endPeriodParam");         
List<Entry> entries = (List<Entry>) q.execute(beginPeriod,endPeriod);
return entries;
}

1 个答案:

答案 0 :(得分:0)

我的猜测是因为数组从0开始。我正在尝试你的(我的查询没有返回任何东西?)并注意到它是真的几个月 - 1 =&gt; 2月,4 =&gt;可能等等。