SharePoint REST _api DateTimeRange查询

问题描述 投票:0回答:1

我有一个列表,其中包含数据类型为DateTime的开始日期和结束日期列。我想构建一个查询,该查询获取在查询日期范围内具有开始日期or结束日期的所有事件。问题是查询使用and。所以我只在日期范围查询中获得包含开始日期和结束日期的事件。我尝试用and替换or,但我只在控制台中获得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>"};
javascript rest api sharepoint-online sharepoint-list
1个回答
1
投票

看起来像格式化的一些问题。

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

所以,你的网址是:

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;
© www.soinside.com 2019 - 2024. All rights reserved.