我尝试了一些领域查询,但没有得到我想要的结果
让我们在下面的表中考虑(Realm表):
id Name DateTimeStamp
1 A 2017-01-01 08:00:00
2 B 2017-01-01 15:00:00
3 C 2017-01-02 08:00:00
现在我想要所有那些与日期“2017-01-01”匹配的记录。对于这种情况,我应该从领域表中得到2条记录。现在我没有得到任何记录。
有关信息“DateTimeStamp”列数据类型为“Date”。是的我需要在数据库中存储日期和时间,如表中所示。
我试过的查询是:
long cnt = realm.where(ReservationObject.class).equalTo("DateTimeStamp",dateObject).count();
请帮帮我... 提前谢谢......
答案 0 :(得分:9)
您需要为Date
和2017-01-01 00:00:00
设置2017-01-02 00:00:00
个对象,并在其间进行查询。
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1); // make sure month stays valid
calendar.set(Calendar.YEAR, 2017);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date jan1 = new Date(calendar.getTimeInMillis());
calendar.set(Calendar.DAY_OF_MONTH, 2);
Date jan2 = new Date(calendar.getTimeInMillis());
然后
realm.where(ReservationObject.class)
.greaterThanOrEqualTo("DateTimeStamp", jan1)
.lessThan("DateTimeStamp", jan2)
.findAll()
答案 1 :(得分:0)
使用contains
就像LIKE
long cnt =
realm.where(ReservationObject.class)
.contains("DateTimeStamp",dateObject).count();
或最新版本
public RealmQuery<E> like(String fieldName,
String value,
Case casing)