2015-01-05 7 views
4

Я пишу запрос DateTime фильтра в OData так:Фильтр OData DateTime Ошибка Edm.String?

... + "$filter=SubmitTime lt datetime'2014-12-30T23:59:59.99Z'" 

и встретил следующую ошибку:

enter image description here

я сделал следовать формат OData руководство и другие интернет-ссылки, а строка, которую я написал, выровнена с директивой.

Так это проблема, вызванная версией dll? как указано в этом сообщении: WebAPI OData DateTime error

версия Microsoft.OData.Edm.dll я использую: Продолжительность Версия: v4.0.30319 Версия: 6.3.0.0

Любые идеи? Спасибо!

ответ

10

Кажется, что вы используете библиотеку OData, которая реализует OData V4. В спецификации OData V4 нет примитивного типа DateTime, есть только DateTimeOffset.

Не могли бы вы попробовать URL:

...?$filter=SubmitTime lt 2014-12-30T23:59:59.99Z 
+0

Это работает! Спасибо! Я не нашел такую ​​информацию внутри спецификации OData V4 (http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02 -os-part1-protocol-complete.html), откуда вы это указали? Благодаря! – RainCast

+0

У меня есть вопрос с вопросом, кроме строки datetime, например, 2014-12-30T23: 59: 59.99Z, есть ли какой-либо другой формат поддержки запросов OData в сравнении datetime, например, если я хочу сравнить по общим тикам utc, вместо явная строка datetime, как выглядит запрос? – RainCast

+0

@RainCast вы можете найти соответствующую информацию здесь: (http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part2-url-conventions/odata-v4.0-errata02 -os-part2-url-conventions-complete.html # _Toc406398153), а также в ABNF (http://docs.oasis-open.org/odata/odata/v4.0/os/abnf/odata-abnf-construction- rules.txt) – Maya