如何使用动态日期过滤oData调用?

时间:2014-08-24 11:14:44

标签: javascript jquery ajax odata

我正在使用URL进行AJAX调用,如下所示。

http://somecomputer/Service.svc/Method?$filter=SomeDate gt DateTime'2014-08-24'

这非常有效,而且在我的AJAX调用之前,我生成了描述日期的字符串。但是,我想知道是否可以匹配动态值上的日期,例如今天 lastyear 或者不是。

在Google上搜索时我还没有找到任何相关的文档,所以可能它不可能,但我仍然需要检查SO的智慧。

2 个答案:

答案 0 :(得分:1)

是的,当然。一个例子:

var today = new Date().toISOString().substr(0,10);
var url = "http://somecomputer/Service.svc/Method?"
  + "$filter=SomeDate gt DateTime'" + today + "'";

答案 1 :(得分:1)

是的,有可能。 OData中有Built-in Query Functions这样的东西,您可以在查询选项中使用它来表示动态值。从链接中可以看到"日期函数"下的函数now()。类别和ODataLib已经在其最新版本的URL解析器中支持它。 (参见发布说明here)。

但有两件事需要注意:

  1. ODataLib仅处理请求URL中此类函数的解析,其实际逻辑需要由服务实现者进一步实现。
  2. 根据OData V3协议的查找(this page上的第10.2.3.1.2节),V3没有这种动态的内置查询功能。