如何通过WCF ODATA过滤器找到当天的所有数据



我们想与获取当今或今天的所有数据有关过滤条件。我们正在尝试以下代码,但我们正在遇到错误。请提供需要完整的解决方案。

$filter=ServiceCallID eq 425977 and DateCreated eq '11/28/2016 12:45:25 PM'

错误是"运算符EQ"与操作数类型'System.DateTime'和" System.String"的位置40。"。我们正在使用ODATA的V2版本。

我相信您需要将参数定义为DateTime。您会得到错误,因为.NET将您的参数解释为string,但是类型为DateTime

来自odata.org:

datetime'yyyy-mm-ddthh:mm [:ss [.ffffffff]]'注意:不允许空格 在DateTime和引用部分之间。DateTime是不敏感的

尝试以下操作:

$filter=ServiceCallID eq 425977 and DateCreated eq datetime'2016-11-18T12:45:25'

请注意,我还将格式更改为YYYY-MM-dd。您可能还需要将eq更改为gtlt,具体取决于您的定义。

因此,您的最终解决方案可能是greater or equal to 2016-11-18。和less than 2016-11-19。它应该在2016-11-18期间提供所有项目。

$filter=ServiceCallID eq 425977 and DateCreated ge datetime'2016-11-18' and DateCreated lt datetime'2016-11-19'

最新更新