我正在使用桌面 c# 应用程序的 CSOM SharePoint 客户端库与 SharePoint 进行交互。
我想根据某个日期时间的日期和时间类型列进行查询,并返回匹配的文档数据。
如果我在 SharePoint搜索框中输入文本 LastModifiedTime: 2019-11-19,则会返回结果,以便我知道 SharePoint 中存在匹配的数据。
如果我将 KeyWorkQuery 设置为对基于字符串的列的查询,则会返回预期的结果。
KeywordQuery keywordQuery = new KeywordQuery(context);
keywordQuery.QueryText = @"author: ""Tom"" author: ""Bill"" FileType: ""txt""";
为了过滤日期时间类型的列,我尝试了以下方法,但没有取回数据。 我怀疑这是查询文本中的格式错误,并且查询被视为字符串,而不是日期时间类型,
keywordQuery.QueryText = "LastModifiedTime:2019-11-19T09:28:25:ssZ";
keywordQuery.QueryText = "LastModifiedTime:2019-11-19T09:28:25";
keywordQuery.QueryText = "LastModifiedTime:2019-11-19";
是否可以使用 SharePoint 客户端库查询基于日期时间类型的列?
如果是这样,查询字符串需要什么格式才能筛选列? 任何建议表示赞赏。
在 KQL 示例中,它似乎使用"="而不是":"来表示日期时间。尝试:
LastModifiedTime=today
https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference
您也可以尝试使用一系列日期:
LastModifiedTime>=2019-01-01 AND LastModifiedTime<=2019-04-26
编辑 此问题可能是由于 KQL 不支持确切的日期筛选器。它似乎必须是一个范围或特殊的关键字选项。
就日期时间字符串格式而言,您的示例似乎受支持。