web-dev-qa-db-fra.com

Filtre de requête OData pour la plage dateTime

J'ai une propriété DateTime dans les données renvoyées par un service qui ressemble à "SDateTime":"2014-06-29T03:30:00.000".

J'ai besoin d'écrire une requête pour obtenir une collection dont la date est inférieure à "2014-06-26T03: 30: 00.000" et supérieure à "2014-06-23T03: 30: 00.000"

Comment écrire un filtre pour le dateTime?

Merci.

13
user2439903

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

Il fonctionne dans ce service: http://services.odata.org/V3/OData/OData.svc/Products?$filter=ReleaseDate%20gt%20datetime%271995-09-01T00:00:00%27 % 20et% 20ReleaseDate% 20lt% 20datetime% 271995-12-01T00: 00: 00% 27

21
Tan Jinfu

Dans le format de filtrage de date OData V4 a changé, le filtre correct sera

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

Par exemple

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

Pour les versions précédentes d'OData, voir réponse précédente

14
avitenberg

Breeze construira automatiquement un filtre OData sous les couvertures pour toute requête. Donc, demander une date ressemblera à quelque chose comme ça dans Breeze.

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