SharePoint REST Api 按日期筛选

All*_*Est 0 api rest sharepoint datetime sharepoint-online

我正在尝试按日期过滤掉项目。我想要获得一个项目,其 dateFrom 等于或大于今天,并且 dateTo 等于或小于今天。这是我的查询和重新格式化日期函数。在 SharePoint Online 中,我将日期设置为only date。默认情况下,sharePoint 将时间部分设置为 23:00:00。这就是静态使用它的原因。\xc2\xb4ge dateFrom\xc2\xb4查询部分工作正常,但忽略le dateTo了 equel 部分。因此,如果 dateTo 设置为2018-03-19. 我没有收到任何将 dateTo 设置为该日期返回的项目2018-03-19。我的查询有误吗?

\n\n
     var requestUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle(\'" + _weaklyQuestion + "\')/items?$select=Id,Title,answersOptions,dateFrom,dateTo&$filter=(\'" + ReFormatTime() + "\' ge dateFrom) and (\'" + ReFormatTime() + "\' le dateTo)&$top=1";\n\n        function ReFormatTime() {\n        var date = new Date(),\n            year = date.getFullYear(),\n            month = date.getMonth() + 1,\n            dt = date.getDate();\n\n        if (dt < 10) {\n            dt = \'0\' + dt;\n        }\n        if (month < 10) {\n            month = \'0\' + month;\n        }\n        return year + \'-\' + month + \'-\' + dt + \'T23:00:00Z\';\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

TLP*_*TLP 5

您必须将格式化的时间字符串包装在datetime()

var requestUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + _weaklyQuestion + "')/items?$select=Id,Title,answersOptions,dateFrom,dateTo&$filter=(datetime('" + ReFormatTime() + "') ge dateFrom) and (datetime('" + ReFormatTime() + "') le dateTo)&$top=1";
Run Code Online (Sandbox Code Playgroud)


Ama*_*rni 5

对于 SharePoint Online 版本 - 日期范围比较:

1) 将用于比较的日期转换为2019-04-18T23:59:00.000Z格式。

2)在日期末尾添加000Z并形成剩余查询,如下所示。

/_api/web/lists/getByTitle('ListName')/items?$orderby=Created desC&$filter=(Created ge datetime'2019-04-17T00:00:00.000Z') and (Created le datetime'2019-04-18T23:59:00.000Z')
Run Code Online (Sandbox Code Playgroud)