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

How to check if date equals date of datetime property only using query parameters

我有一个 DateTime 属性.

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

这行不通:(

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

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

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

dateValue = year "-" month "-" day

所以,我认为你不应该添加 date 前缀。那是:

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

谢谢。希望对你有帮助。