$ WCF数据服务查询URL中的DateTime的$ filter选项

时间:2012-05-30 22:32:58

标签: asp.net wcf wcf-data-services

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)相同。到底是怎么回事?我该如何工作?我需要某种DateTime格式吗?我上面尝试的内容似乎记录在案here

2 个答案:

答案 0 :(得分:9)

您可以尝试使用以下语法

$filter=ModifiedDate gt datetime'2012-05-02T00:00:00'

其他日期时间函数可以在此参考文献中找到odata url convention

URI约定:

http://msdn.microsoft.com/en-us/library/dd728283.aspx

答案 1 :(得分:3)

对于oData Feed中的DateTime过滤,使用DateTime前缀限定datetime变量。

   http://odata.netflix.com/v2/Catalog/Titles?$filter=DateModified eq DateTime'2012-01-31T09:45:16'

以上网址显示了如何根据日期时间过滤netflix odata Feed。