我试图查询低值和高值之间的日期:
Car car = new Car(1, "octavia"); car.setManufactured(Calendar.getInstance().getTime()); Dao carDao = getHelper().getCarDao(); carDao.create(car); QueryBuilder carQb = carDao.queryBuilder(); Calendar yesteday = Calendar.getInstance(); yesteday.add(Calendar.DATE, -1); Calendar tommorrow = Calendar.getInstance(); yesteday.add(Calendar.DATE, 1); carQb.where().between("manufactured", yesteday.getTime(), tommorrow.getTime()); PreparedQuery query = carQb.prepare(); List cars = carDao.query(query); Log.d(TAG, cars.get(0).toString());
Car对象看起来像这样:public class Car { @DatabaseField(id = true) private int id; @DatabaseField String name; @DatabaseField(foreign = true, foreignAutoRefresh = true) User user; @DatabaseField(foreign = true, foreignAutoRefresh = true) private Brand brand; @DatabaseField(columnName="manufactured") private Date manufactured; }
不幸的是,我没有得到任何结果。 哪里可能有问题?
这是你的问题:你做了剪切和粘贴错误。 你明天等于今天,然后无意中将昨天等于明天。 没有比明天更大的日子而且比今天还要少,所以你没有回来的行。
将代码更改为如下所示:
Calendar tommorrow = Calendar.getInstance(); tomorrow.add(Calendar.DATE, 1); // change yesterday to tomorrow