WCF 数据服务查询 URL 中的日期时间$filter选项



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 提要。

最新更新