在odata msgraph中使用小于或等于

时间:2017-06-13 14:04:40

标签: microsoft-graph

我目前正在处理日历活动,我想仅在两个日期之间获取活动。 我想在msgraph api中使用比较运算符'le',但它无法正常工作。它似乎像'lt'一样工作。我对'ge'没有问题。

这是我的json事件开始/结束日期:

"start": {
    "dateTime": "2017-06-13T12:00:00.0000000",
    "timeZone": "UTC"
},
"end": {
    "dateTime": "2017-06-13T15:00:00.0000000",
    "timeZone": "UTC"
}

这是我的问题:

https://graph.microsoft.com/v1.0/groups/{groupId}/events?$filter=(start/dateTime ge '2017-06-13' and end/dateTime le '2017-06-13')

此查询不返回任何内容!我只尝试了开始日期或结束日期,但结果相同。

有谁能告诉我这个问题有什么问题?

3 个答案:

答案 0 :(得分:1)

我猜测问题的一部分是你在开始时间和结束时间都使用相同的值。请注意,这并不意味着“6月13日的任何事件”。相反,它意味着“任何其开始时间大于或等于2017-06-13 00:00:00 UTC并且其结束时间小于或等于2017-06-13 00:00:00 UTC的事件”。我无法解释为什么只尝试开始日期不起作用。

类似的查询在Graph Explorer中适用于我:https://developer.microsoft.com/en-us/graph/graph-explorer?request=me/events?$filter=start/dateTime ge '2016-06-01' and end/dateTime le '2016-06-02'&method=GET&version=v1.0

但请注意,您可能真正需要的是calendarViewevents是事件的原始列表,calendarView需要重复考虑。

答案 1 :(得分:1)

参数," start / dateTime"和"结束/日期时间"基本上是dateTime值of a single point of time

因此,当您执行比较"(开始/日期时间' 2017-06-13'和结束/日期时间le' 2017-06-13')&# 39;对于日期" 2017-06-13",它实际上将其比作"(开始/日期时间ge' 2017-06-13T00:00:00.0000000'和结束/日期时间le' 2017-06-13T00:00:00.0000000')"。

因此,如果您需要获取上述记录,请使用

更新查询
imageView.transform = .identity

答案 2 :(得分:0)

通常,对于此类操作,您应使用CalendarView而不是Events。 CalendarView将返回用户通常在Outlook中看到的相同结果。

此外,在寻找一天时,您需要指定时间,否则它将仅返回在午夜开始和结束的约会。或者,你可以在没有时间(即午夜到午夜)的情况下使用第二天:

' https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2017-06-13&enddatetime=2017-06-14'