Office 365 图表 API - 大于接收日期筛选器

Office 365 Graph API - Greater Than Filter on Received Date

我正在尝试对 Office 365 Graph API 执行查询 "give me all emails before {someISODateTimeString}"

例如:

https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime gt 2016-02-26T14:41:08Z

看起来 gt(大于)实际上是大于或等于(ge),因为上面的查询 returns 我收到一封电子邮件,其中包含我传递给查询。

所以我尝试了一个解决方法:

https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime ne 2016-02-26T14:41:08Z AND receivedDateTime ge 2016-02-26T14:41:08Z

这也未能省略接收日期为 2016-02-26T14:41:08Z 的电子邮件。

任何关于如何在收到日期实现 "greater than" 查询的帮助将不胜感激。

您看到的行为实际上是由于 REST API 中的精度损失所致。大多数日期字段(包括 receivedDateTime)实际上以比秒更精确的方式存储。当前发生的情况是您的请求正在转换为 receivedDateTime > 14:41:08.0000 的查询。出现在 14:41:08.01 的消息在技术上比那个要大,即使精度被砍掉使其看起来相等。

您可以使用的解决方法(我们内部也在寻求在所有 "gt" 或 "lt" 场景中应用的方法)是对下一个单元使用 "ge",所以在你的例子中:

https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime ge 2016-02-26T14:41:09Z