0

我在 Cassandra 有一张桌子:-

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。

4

1 回答 1

0

您应该将 id 数据类型从时间戳更改为日期,之后您必须更改主键,因为在给定日期应该有很多打印机负载,因此将其设为普通列并使用二级索引来查询该列。

我认为它应该对你有用。

于 2014-06-04T10:10:06.560 回答