如何在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(); 

一般之间的作品,如果左手侧值大于右侧