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