Jen*_*n S 14
OData v3没有原始数据类型Date.您拥有的属性是a DateTime或a DateTimeOffset,因此,无论您是否使用它,该值都有一个时间部分,如果要检查值的相等性,还必须检查时间组件.
如果您确定永远不会使用时间部分(并始终将其设置为00:00),则可以执行以下查询:
/service.svc/EntitySet?$filter=DateProperty+eq+datetime'2013-04-04'
Run Code Online (Sandbox Code Playgroud)
这意味着00:00的时间部分.但那只是速记.如果您的某些日期时间最终结束时间部分不是00:00,则可能会出现意外结果.
因此,鉴于您只想检查值的日期部分,而不是完全相等,我认为您提到的第二种方法是实现它的最佳方法:
/service.svc/EntitySet?$filter=day(DateProperty)+eq+4+and+month(DateProperty)+eq+4+and+year(DateProperty)+eq+2013
Run Code Online (Sandbox Code Playgroud)
这样你就可以确切地检查你要检查的是什么,仅此而已.
对于它的价值,我相信DateOData v4中会出现一种数据类型.然后你就可以使用等式检查而不用担心时间.