Web 什么';URI中ODataV4持续时间的正确语法是什么?

Web 什么';URI中ODataV4持续时间的正确语法是什么?,web,syntax,odata,uri,duration,Web,Syntax,Odata,Uri,Duration,我想在最后一天买新产品。使用此URI查询: example.com/v4/Products?$select=Id,Name,CreatedOnUtc&$filter=CreatedOnUtc ge (now() sub P1D0H0M0.0S) 但它返回的信息是: URI中指定的查询无效。“CreatedOnUtc ge(现在()子P1D0H0M0.0S)”中位置37处的语法错误 我这里有什么错?将持续时间替换为持续时间'PT1D0H0M0.0S'(当然,您应该将报价替换为%27)。注

我想在最后一天买新产品。使用此URI查询:

example.com/v4/Products?$select=Id,Name,CreatedOnUtc&$filter=CreatedOnUtc ge (now() sub P1D0H0M0.0S)
但它返回的信息是:

URI中指定的查询无效。“CreatedOnUtc ge(现在()子P1D0H0M0.0S)”中位置37处的语法错误


我这里有什么错?

将持续时间替换为持续时间'PT1D0H0M0.0S'(当然,您应该将报价替换为%27)。注意PT前缀,而不仅仅是P


请注意,MS的OData不支持函数now()。

您使用什么来构建OData服务?@SamXu,这不是我的项目,因此我无法访问后端。但是响应标题有线索可以回答您的问题:OData版本:4.0服务器:Microsoft IIS/7.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.net您知道如何构建后端吗?Web API OData?还是WCFDS?还是别的?对于Web API OData,它不支持now()。@SamXu发现它不支持
now()
函数。我想我应该提供实际情况。那么,我如何获得最后一天的产品呢?持续时间是错误的。它应该是P1DT0H0M0.0S,并且可以减少为P1D。持续时间中的“T”将日期部分(年、月、日、周等)与时间部分(小时、分钟、秒)分开,所有0值都可以忽略,因为这是默认值。