日期时间范围的OData查询过滤器

时间:2014-06-30 11:48:44

标签: odata breeze

我在服务返回的数据中有一个DateTime属性,如下所示: " SDateTime":" 2014-06-29T03:30:00.000"

我需要编写一个查询来获取日期小于" 2014-06-26T03:30:00.000"并且大于" 2014-06-23T03:30:00.000"

如何为dateTime编写过滤器?

感谢。

3 个答案:

答案 0 :(得分:16)

$ filter = SDateTime gt datetime' 2014-06-26T03:30:00.000'和SDateTime lt datetime' 2014-06-23T03:30:00.000'

它适用于此服务:http://services.odata.org/V3/OData/OData.svc/Products?$filter=ReleaseDate%20gt%20datetime%271995-09-01T00:00:00%27%20and%20ReleaseDate%20lt%20datetime%271995-12-01T00:00:00%27

答案 1 :(得分:11)

在OData V4中,日期过滤格式已更改,正确的过滤器将为

$filter=SDateTime gt 2014-06-23T03:30:00.000Z and SDateTime lt 2014-06-26T03:30:00.000Z

例如

http://services.odata.org/V4/OData/OData.svc/Products?%24filter=ReleaseDate%20gt%201995-09-01T00:00:00Z%20and%20ReleaseDate%20lt%201995-12-01T00:00:00Z

对于以前版本的OData,请参阅previous answer

答案 2 :(得分:2)

Breeze将自动为任何查询构建一个OData过滤器。因此,查询日期将在Breeze中看起来像这样。

var query = new EntityQuery("Orders")
        .where("orderDate", ">", new Date(1998, 3, 1));