我在使用绿岛的时候有问题。到目前为止效果很好。但我想当我试着比较日期的时候有个问题。情况如下
我有一张桌子,叫它ordertable。我有两个日期作为列,orderdate和deliverydate。现在我要选择deliveryDate为空或orderDate大于deliveryDate的记录
我想在where子句中创建这个来选择记录。但它给了我以下的错误
org.greenRobot.greenDao.daoException:非法日期值:值org.greenRobot.greenDao.property@41d032a0应为java.util.date或long
所以我无法比较两个日期,即使在某些记录中是空的,但is null也不起作用。
请帮帮我。我深陷其中。
最佳答案
为了检查日期对象是否为空,我们需要使用以下命令:
daoSession.getModelDao().queryBuilder().where(ModelDao.Properties.SyncedAt.isNull()).list();
和
daoSession.getModelDao().queryBuilder().where(ModelDao.Properties.SyncedAt.isNotNull()).list();
要比较日期,我们需要使用:
gt() and lt()
例子
List<Model> items = daoSession.getModelDao().queryBuilder()
.where(ModelDao.Properties.StartTime.gt(fourAMTomorrow),
ModelDao.Properties.EndTime.lt(endAt), ModelDao.Properties.Date.eq(date))
.list();
希望这对某人有帮助。