如何正确使用ODataV4 DataTimeOffset和查询文件管理器?

如何正确使用ODataV4 DataTimeOffset和查询文件管理器?,odata,Odata,我有一个OData v4 WebAPI 2端点: http://windows-10:8888/Incident 此端点需要支持对DateTime字段进行筛选: http://windows-10:8888/Incident?$filter=REPORTEDDATE gt DateTimeOffset'2016-05-10%2016:01:53.000' 当我运行此操作时,会出现以下错误: "The query specified in the URI is not valid.

我有一个OData v4 WebAPI 2端点:

http://windows-10:8888/Incident
此端点需要支持对DateTime字段进行筛选:

http://windows-10:8888/Incident?$filter=REPORTEDDATE gt DateTimeOffset'2016-05-10%2016:01:53.000'
当我运行此操作时,会出现以下错误:

     "The query specified in the URI is not valid. 
    Unrecognized 'Edm.String' literal 'DateTimeOffset'2016-05-10 16:01:53.000'' 
at '16' in 'REPORTEDDATE gt DateTimeOffset'2016-05-10 16:01:53.000''."

使用OData v4完成日期时间过滤的正确方法是什么?

在这里找到了正确的语法:http://stackoverflow.com/questions/28586797/the-binary-operator-lessthan-is-not-defined-for-the-types-system-nullable1sys

在我的例子中,语法是:

http://windows-10:8888/Incident?$filter=cast(REPORTEDDATE,%27Edm.DateTimeOffset%27)%20gt%20%202016-05-10T22:38:00.000Z
根据规范第5.1.1.6.1节示例:

?$expand=Trips$filter=StartsAt%20eq%202014-01-01T01:00:00-08:00或?$expand=Trips$filter=StartsAt%20eq%202014-01-01T01:00.000-08:00或?$expand=Trips$filter=StartsAt%20eq%202014-01-01T01:00:00Z

我已经验证了Web APi OData或REStier,效果很好