Оператор Api графика больше или больше действует как больше или равно

Я делаю запрос к графическому API, чтобы получить мои почтовые сообщения, у которых recievedDate больше, чем некоторая дата. Оказывается, я получаю ответ с письмом, которое recievedDate совпадает с датой в запросе. Я не должен получать никаких значений, так как я прошу письма, которые recievedDate больше, чем Больше или равно. Есть какая-то ошибка? Ниже подробности.

введите описание изображения здесь


person bartkub89    schedule 07.07.2020    source источник


Ответы (1)


Это проблема точности времени. В хранилище 2021-01-18T16:11:47Z имеет более точное значение, которое может находиться между 2021-01-18T16:11:47.000Z и 2021-01-18T16:11:47.999Z, и в этом случае операция gt будет иметь True, поскольку 2021-01-18T16:11:47Z разрешается в 2021-01-18T16:11:47.000Z. Вот почему вы получаете записи, которые имеют одинаковую метку времени с параметром запроса с gt.

Из-за этого equal будет работать только с меткой времени с точной точностью.

Чтобы удалить сообщение с одинаковой меткой времени из ответа, вы можете использовать самую высокую точность на последней цифре времени. Например, receivedDateTime gt 2021-01-25T15:12:26.999Z удалит все, что имеет 2021-01-25T15:12:26Z, но вы должны убедиться, что это именно то, что вы ожидаете.

Обратите внимание, что то же самое произойдет и с другими полями времени, например, receivedDateTime gt 2021-01-25T15:12Z вернет данные для 2021-01-25T15:12Z и выше, поэтому, чтобы удалить всю метку времени, вы должны использовать верхний предел:

receivedDateTime gt 2021-01-25T15:12Z будет receivedDateTime gt 2021-01-25T15:12:59Z для минутной точности.

person Danstan    schedule 25.01.2021