如何在greenDao数据库中的两个日期之间获取数据
问题描述:
我有两个日期。一个是当前日期,另一个是30天后的日期。所以我需要在Green Dao的这两个日期之间取数据。但我没有得到结果。如何在greenDao数据库中的两个日期之间获取数据
mycode的:
Date startRangeDate = new Date();
Date endRangeDate = dateBefore30Days;
QueryBuilder<StructSamePage> qb = UserDao.queryBuilder();
qb.where(UserDao.Properties.dateTime.between(startRangeDate.getTime(), endRangeDate.getTime()));
List<StructSamePage> list = qb.list();
答
在GreenDao之间的WhereCondition使用此:
/** Creates an "BETWEEN ... AND ..." condition for this property. */
public WhereCondition between(Object value1, Object value2) {
Object[] values = { value1, value2 };
return new PropertyCondition(this, " BETWEEN ? AND ?", values);
}
所以,你应该只需要进行相应的更改日期。因为你现在使用第一和一天前的30天之后你的代码将做到这一点:
Value >= NOW AND Value <= 30 DAYS BEFORE
如果您使用的实际日期至极greenDAO不使用!您的代码应该是这样的:
today = 2016-03-04
30DaysAgo = 2016-02-03
WHERE dateTime >= 2016-03-04 AND dateTime <= 2016-02-03
所以你应该罚款,如果你只需要改变你的订单。
如果您想了解更多有关如何可以工作之间读取this
一句忠告:greenDao使用时间戳在数据库中的一个整数,所以如果你使用的Java日期你也有时间日期(创建时),如果您仅从中删除30天,则不会在30天前包含全天,而只会在创建当前日期对象时及时创建。所以,也许你想在没有时间的情况下从日历中创建日期。
答
尝试通过交换日期。
Date startRangeDate = new Date();
Date endRangeDate = dateBefore30Days;
QueryBuilder<StructSamePage> qb = UserDao.queryBuilder();
qb.where(UserDao.Properties.dateTime.between(endRangeDate.getTime(),startRangeDate.getTime() ));
List<StructSamePage> list = qb.list();
一般之间的作品,如果左手侧值大于右侧
小