web-dev-qa-db-ja.com

dateTime範囲のODataクエリフィルター

"SDateTime":"2014-06-29T03:30:00.000"のようなサービスによって返されるデータにDateTimeプロパティがあります。

「2014-06-26T03:30:00.000」より小さく、「2014-06-23T03:30:00.000」より大きい日付のコレクションを取得するクエリを作成する必要があります

DateTimeのフィルターを作成する方法は?

ありがとう。

13
user2439903

$ 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

21
Tan Jinfu

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の以前のバージョンについては、 以前の回答 を参照してください

14
avitenberg

Breezeは、クエリのカバーの下にODataフィルターを自動的に構築します。したがって、日付を照会すると、Breezeでは次のようになります。

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