WCF 数据服务允许通过 URL 中的选项方便地查询和筛选数据。 例如,假设我想要价格大于 20 的商品:
http://www.example.com/Service.svc/Products?$filter=Price GT 20
但是如何将$filter
选项与DateTime
一起使用? 假设我想要本月修改的所有产品。
http://www.example.com/Service.svc/Products?$filter=ModifiedDate GT '2012-05-02'
这对我不起作用;它给出了错误消息
运算符"gt"与位置 13 的操作数类型"System.DateTime"和"System.String"不兼容。
我与其他比较运算符(ge,lt,le,eq)得到相同的结果。 这是怎么回事? 我该如何完成这项工作? 我需要某种日期时间格式吗? 我上面尝试的内容似乎记录在这里。
尝试使用以下语法
$filter=ModifiedDate gt datetime'2012-05-02T00:00:00'
其他日期时间函数可在此参考中找到 odata url 约定
URI 约定 :
- 5.0 (OData v2) 之前版本
- 适用于 5.0 (OData v3)
http://msdn.microsoft.com/en-us/library/dd728283.aspx
对于 oData 馈送中的日期时间筛选,使用日期时间前缀限定日期时间变量。
http://odata.netflix.com/v2/Catalog/Titles?$filter=DateModified eq DateTime'2012-01-31T09:45:16'
上面的网址显示了如何根据日期时间过滤 netflix odata 提要。