SharePoint REST _api DateTimeRange 查询

SharePoint REST _api DateTimeRange query

我有一个列表,其中包含数据类型为 DateTime 的开始日期和结束日期列。我想构建一个查询,以获取开始日期 or 结束日期在查询日期范围内的所有事件。问题是查询使用 and。所以我只获得日期范围查询内开始和结束日期的事件。我尝试用 or 替换 and 但我只在控制台中得到 Unexpected token 。我看了看docs。但无法解决。有什么建议吗?

这是我的代码:

        var DateRAngeFormat = 'YYYY-MM-DDT00';

        var ThreeMonthsEarlier = moment().add(-3, 'months').format(DateRAngeFormat),
            ThreeMonthsFromNow = moment().add(3, 'months').format(DateRAngeFormat);

        var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Program')/items?$select=Title%2CKontaktperson%2CBokning_x0020_till%2CBokning_x0020_fr_x00e5_n%2CMax_x0020_antal_x0020_platser%2CID&$filter=Bokning_x0020_fr_x00e5_n%20ge%20datetime'${ThreeMonthsEarlier}%3A00%3A00'%20and%20Bokning_x0020_till%20le%20datetime'${ThreeMonthsFromNow}%3A00%3A00'`;

EDIT

我使用 CAML 查询(服务器端代码)进行了查询,并得到了我想要的结果。所以我的猜测是可以使用 REST _api,我只需要弄清楚如何。

 var q = new CamlQuery() { ViewXml = "<View><Query><Where><Or><Gt><FieldRef Name='Bokning_x0020_fr_x00e5_n' /><Value IncludeTimeValue='TRUE' Type='DateTime'>2017-10-03T00:28:05Z</Value></Gt><Lt><FieldRef Name='Bokning_x0020_till' /><Value IncludeTimeValue='TRUE' Type='DateTime'>2010-04-02T00:28:08Z</Value></Lt></Or></Where></Query></View>"};

格式似乎有问题。

您需要使用$filter=(Bokning_x0020_fr_x00e5_n ge datetime'2017-10-03T00:28:05Z') and (Bokning_x0020_till le datetime'2010-04-02T00:28:08Z')

因此,您的 url 将是:

var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Program')/items?
$filter=(Bokning_x0020_fr_x00e5_n ge datetime'2017-10-03T00:28:05Z') and (Bokning_x0020_till le datetime'2010-04-02T00:28:08Z')
$select=Title,Bokning_x0020_fr_x00e5_n,Bokning_x0020_till,Kontaktperson,Max_x0020_antal_x0020_platser;