查询以获取2个给定日期之间的所有日期

时间:2014-08-11 07:44:25

标签: java google-app-engine google-cloud-datastore

我试图从数据存储区(appengine)获取2个给定日期之间的所有日期,我发现这个查询给出了升序和降序日期,但我需要介于

之间
Query q = new Query("Employee Attendance Sheet test1").addSort("Date", Query.SortDirection.ASCENDING);

如果以某种方式混合升序和降序查询可能

我也找到了这些代码

query.setFilter("dateField < dateParam");

但是setFilter函数告诉我它不接受字符串。有什么问题?

1 个答案:

答案 0 :(得分:0)

如果您只有一个日期字段,您希望检查它是否属于某个时间段(两个给定日期之间),那么您只需使用带复合过滤器的查询:

Filter startDateFilter = new FilterPredicate("dateField",
                         FilterOperator.GREATER_THAN_OR_EQUAL,
                         startDate);

Filter endDateFilter = new FilterPredicate("dateField",
                       FilterOperator.LESS_THAN_OR_EQUAL,
                       endDate);

Filter dateFilter = CompositeFilterOperator.and(startDateFilter, endDateFilter);

Query q = new Query("EntityName").setFilter(dateFilter);