使用greendao时遇到问题。到目前为止它工作得很好。但是当我尝试比较日期时,我认为存在问题。以下是案例
我有一张桌子可以叫它 OrderTable 。我有两个日期列, OrderDate 和 DeliveryDate 。现在我想选择 DeliveryDate 为空或 OrderDate 大于 DeliveryDate
的记录我想在Where子句中选择记录。但它给了我以下错误
org.greenrobot.greendao.DaoException:非法日期值:预期java.util.Date或Long for value org.greenrobot.greendao.Property@41d032a0
所以即使我知道某些记录中的日期为空,即使Is Null不起作用,我也无法比较2个日期。
请帮帮我。我被困在里面。
答案 0 :(得分:0)
要检查Date对象是否为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();
希望这会对某人有所帮助。