Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用**日期对象**从**领域数据库**获取数据?_Android_Date_Realm - Fatal编程技术网

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()