SharePoint REST _api DateTimeRange查询

时间:2018-01-02 20:40:51

标签: javascript rest api sharepoint-online sharepoint-list

我有一个包含数据类型and的开始日期和结束日期列的列表。我想构建一个查询,该查询获取在查询日期范围内具有开始日期and结束日期的所有事件。问题是查询使用or。所以我只在日期范围查询中获得包含开始日期和结束日期的事件。我尝试用Unexpected token替换 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。我看了docs。但无法解决它。有什么建议吗?

这是我的代码:

 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>"};

{{1}}

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

{{1}}

1 个答案:

答案 0 :(得分: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;