Android 如何使用**日期对象**从**领域数据库**获取数据?
我尝试了一些领域查询,但没有得到我想要的结果Android 如何使用**日期对象**从**领域数据库**获取数据?,android,date,realm,Android,Date,Realm,我尝试了一些领域查询,但没有得到我想要的结果 让我们考虑下面的表,例如(域表): 现在我需要所有与日期“2017-01-01”匹配的记录。因此,对于本例,我应该从realm表中获得2条记录。现在我没有得到任何记录 关于“DateTimeStamp”列的信息,数据类型是“Date”。是的,我需要在数据库中存储日期和时间,如表中所示 我尝试过的查询是: long cnt = realm.where(ReservationObject.class).equalTo("DateTimeStamp",d
让我们考虑下面的表,例如(域表):
现在我需要所有与日期“2017-01-01”匹配的记录。因此,对于本例,我应该从realm表中获得2条记录。现在我没有得到任何记录 关于“DateTimeStamp”列的信息,数据类型是“Date”。是的,我需要在数据库中存储日期和时间,如表中所示 我尝试过的查询是: long cnt = realm.where(ReservationObject.class).equalTo("DateTimeStamp",dateObject).count();
请帮我做这个。。。
提前感谢…使用
包含它就像
long cnt =
realm.where(ReservationObject.class)
.contains("DateTimeStamp",dateObject).count();
或最新版本已发布
public RealmQuery<E> like(String fieldName,
String value,
Case casing)
public RealmQuery like(字符串字段名,
字符串值,
(外壳)
您需要为2017-01-01 00:00:00
和2017-01-02 00:00:00
设置Date
对象,并在两者之间进行查询
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());
然后
我认为contains将不适用于date对象。这是一个日期
字段,而不是字符串
@EpicPandaForce,例如,它是日期字段它正在工作…谢谢你…只是根据新版本编辑了你的答案这太复杂了,realm至少应该提供一些日期函数来直接查询表中存储的日期对象。目前,由于没有可行的替代方案,我不得不使用joda time api处理任何涉及日期和时间处理的查询。包括获取满足year=“YYYY”条件的特定记录检索的简单查询!责怪日历api:不要只责怪java.util.Date对象,尝试提供标准SQL日期查询中最常用的日期函数!核心查询解析器支持“time>2017-12格式的时间-1@12:07:53“
(GMT)但由于核心查询解析器使领域变得更大,Java 5.0领域中不包括原始查询支持。这就是为什么要使用日期来设置查询。
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()