我在我的应用程序中使用parse.com。我可以向/从解析中插入/获取数据。一切正常。但我想使用createdAt字段来获取数据。
我有两个问题。
问题是解析使用日期时间比较createdAt字段所以我不能在查询参数中使用新的Date()。有没有办法比较createdAt字段只按日期?
This问题与我的问题类似。但有没有标准方法?
答案 0 :(得分:1)
据我了解,您需要一些类似关键字“like”的函数,在数据库中使用它来检查列中是否存在子字符串。所以,我们在Parse的Android API中有一个方法。
为此你需要致电whereContains(String key, String substring)
这将添加一个约束来查找包含提供的字符串的字符串值。
所以,你可以这样写:
query.whereContains("createdAt", "25-05-2015");
那只会检索那些属于这个日期并且不包含时间的数据。
文档参考: https://www.parse.com/docs/android/api/#ParseQuery/whereContains
修改强>
由于createdAt列是Date类型,它只接受Date变量。在这种情况下,上述功能将无法正常工作。因此,要实现这一目标,我们必须使用whereGreaterThan
和whereLessThan
。示例代码段为:
Date midnight = new Date();
midnight.setHours(0);
midnight.setMinutes(0);
midnight.setSeconds(0);
Date elevenfiftynine = new Date();
elevenfiftynine.setHours(23);
elevenfiftynine.setMinutes(59);
elevenfiftynine.setSeconds(59);
query.whereGreaterThan(Constants.CREATED_AT_KEY, midnight);
query.whereLessThan(Constants.CREATED_AT_KEY, elevenfiftynine);
参考: https://www.parse.com/questions/android-api-query-to-get-all-objects-created-today