Трудно сказать, не видя вашу структуру таблицы или соответствующие части результирующего набора. Но я заметил, что вы не с указанием смещения по GMT, что означает, что вы эффективно запрос по местному смещению по умолчанию. Проблема в том, что Кассандра хранит GMT + 0000.
Например, если у вас отрицательное GMT-смещение, скажем -0600 (например, я), запрос на GMT-0600 пропустит данные за 6 часов с 1 февраля. Например, если у меня есть строка там для 2016-02-01 01:00:00+0000
, этот запрос не возвращает его:
[email protected]:stackoverflow> SELECT * FROm events WHERe monthbucket='201602'
AND eventdate >= '2016-02-01 00:00:00';
monthbucket | eventdate | beginend | eventid | eventname
-------------+-----------+----------+---------+-----------
(0 rows)
И это потому, что, по существу, 2016-02-01 01:00:00+0000
2016-01-31 19:00:00-0600
. Поэтому, если я добавлю смещение по часовой стрелке 0000
, я вижу строку.
[email protected]:stackoverflow> SELECT * FROm events WHERe monthbucket='201602'
AND eventdate >= '2016-02-01 00:00:00+0000';
monthbucket | eventdate | beginend | eventid | eventname
-------------+--------------------------+----------+--------------------------------------+-------------------
201602 | 2016-02-01 01:00:00+0000 | b | 78d2c2b7-c4ec-408f-be37-eccc0c05727d | test month border
(1 rows)
Мое предположение, что вы, вероятно, имеют противоположную проблему (дополнительные строки против недостающих строк) из-за наличия положительной GMT смещение. Не указывая, что ваше смещение в вашем запросе может быть связано с тем, что оно включает строки из предыдущего месяца. И если это так, тогда вам могут понадобиться эти строки.
Кроме того, не используйте ALLOW FILTERING
. Как обычно.
'между' не работает для Cassandra. Я думаю, что OP случайно включал тег mysql. – Aaron