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。
答案 0 :(得分:9)
您可以尝试使用以下语法
$filter=ModifiedDate gt datetime'2012-05-02T00:00:00'
其他日期时间函数可以在此参考文献中找到odata url convention
URI约定:
答案 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。