如何仅使用查询参数检查date是否等于datetime属性的日期

时间:2015-07-02 14:10:12

标签: date datetime odata odata-v4

我有一个DateTime属性。

我想检查一个日期是否等于我的属性中的日期,它必须完全在OData v4中可用的url查询参数中完成。

这不起作用:(

GET ~/odata/foo$filter=date(myProperty) eq date(1980-01-01)

是的我可以使用greater then or equal,但这已经按预期工作了。这是equalnot equal的问题。

1 个答案:

答案 0 :(得分:1)

根据ABNF规则,日期值是格式为的值:

  

dateValue =年" - "月" - "天

所以,我认为你不应该添加{{1}}前缀。也就是说' S:

  

GET~ / odata / foo $ filter = date(myProperty)eq 1980-01-01

这是ODataTeam提供的一些测试用例:

https://github.com/OData/WebApi/blob/master/OData/test/E2ETest/WebStack.QA.Test.OData/DateAndTimeOfDay/DateAndTimeOfDayTest.cs#L169-L171

https://github.com/OData/WebApi/blob/master/OData/test/E2ETest/WebStack.QA.Test.OData/DateAndTimeOfDay/DateAndTimeOfDayTest.cs#L208-L212

此外,还有一个简单的教程,您可以参考:

http://odata.github.io/WebApi/#04-04-date-and-timeofday-support

感谢。希望它可以提供帮助。