7

低い値と高い値の間の日付を照会しようとしています。

Car car = new Car(1, "octavia");
car.setManufactured(Calendar.getInstance().getTime());
Dao<Car, Integer> carDao = getHelper().getCarDao();

carDao.create(car);

QueryBuilder<Car, Integer> 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<Car> query = carQb.prepare();

List<Car> cars = carDao.query(query);

Log.d(TAG, cars.get(0).toString());

車のオブジェクトは次のように見えます。

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

残念ながら、結果は得られません。どこに問題があるのでしょうか?

4

1 に答える 1

8

ここにあなたの問題があります:あなたはカットアンドペーストエラーをしました。明日を今日と同じに設定し、その後、誤って昨日を明日と同じに設定しました。明日よりも大きく、今日よりも小さい日はないので、列を取り戻すことはできません。

コードを次のように変更します。

Calendar tommorrow = Calendar.getInstance();
tomorrow.add(Calendar.DATE, 1);  // change yesterday to tomorrow
于 2011-09-16T11:36:23.377 に答える