GreenDao比较日期的条件

时间:2018-03-12 07:56:35

标签: android database sqlite greendao

使用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个日期。

请帮帮我。我被困在里面。

1 个答案:

答案 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();

希望这会对某人有所帮助。