У меня есть одна таблица в Кассандре: -
CREATE TABLE printerload (
gp_date timestamp,
printed_cost float,
printed_pages int,
saved_cost float,
saved_pages int,
PRIMARY KEY (gp_date)
)
Я вставил данные в таблицу: -
cqlsh> select * from ga.printerload;
gp_date | printed_cost | printed_pages | saved_cost | saved_pages
--------------------------+--------------+---------------+------------+-------------
2012-01-02 10:30:00-0800 | 0.2 | 2 | 0 | 0
2013-07-10 11:30:00-0700 | 22633 | 322304 | 54.72 | 142
2012-12-15 10:30:00-0800 | 952.17 | 13524 | 0.18 | 3
2013-01-25 10:30:00-0800 | 1982.2 | 26006 | 0.66 | 0
2013-02-26 10:30:00-0800 | 23189 | 335584 | 61.44 | 84
2012-07-16 11:30:00-0700 | 25312 | 338318 | 13.16 | 25
2012-09-26 11:30:00-0700 | 19584 | 287148 | 98.64 | 319
2012-02-09 10:30:00-0800 | 5.01 | 33 | 0.12 | 0
2012-08-19 11:30:00-0700 | 21833 | 323918 | 28.42 | 395
2013-05-09 11:30:00-0700 | 16493 | 235701 | 30.27 | 232
2013-06-14 11:30:00-0700 | 681.41 | 9087 | 0 | 0
2012-08-04 11:30:00-0700 | 610.91 | 8533 | 0 | 0
2012-06-04 11:30:00-0700 | 22793 | 317440 | 4.09 | 4
2013-07-30 11:30:00-0700 | 22037 | 322377 | 34.83 | 79
2012-08-20 11:30:00-0700 | 22760 | 334601 | 8.48 | 17
Я хочу искать по дате (я вставляю данные с помощью Java-клиента, где gp_date — это только дата, например, 2013-07-30). Я сделал запрос: -
cqlsh> select * from ga.printerload WHERE gp_date = '2013-07-30';
(0 rows)
Мне также нужно включить временную часть для поиска.
cqlsh> select * from ga.printerload WHERE gp_date = '2013-07-30 11:30:00-0700';
gp_date | printed_cost | printed_pages | saved_cost | saved_pages
--------------------------+--------------+---------------+------------+-------------
2013-07-30 11:30:00-0700 | 22037 | 322377 | 34.83 | 79
Но сравнение должно быть только по дате (хочу получить записи за конкретный день, независимо от времени). Как я могу это сделать? Есть ли какой-либо метод, который может сравнивать только часть даты? Я использую Apache Cassandra 2.0.7.