Cassandra时间戳返回0行

时间:2014-12-11 18:49:13

标签: java cassandra cql cassandra-2.0 nosql

我创建了表列数据类型作为时间戳,而存储时它存储了默认的时间戳格式yyyy - mm-dd HH:mm:ssZ但是当尝试根据时间戳选择时它不会返回记录。

CREATE TABLE TEST
(
  TS timestamp,
  VALUE text,
  EMAILID text,
  PRIMARY KEY (TS,VALUE)
);

INSERT INTO TEST(TS,VALUE,EMAILID) VALUES('1418026180922','sometext','email@');
SELECT * FROM TEST WHERE TS='2014-12-08 00:38:10-0800'  ALLOW FILTERING;

此查询返回0行?为什么它会像我那样做错了?

适用于以下查询:

SELECT * FROM TEST WHERE TS='1418026180922'  ALLOW FILTERING;

1 个答案:

答案 0 :(得分:4)

您的查询

SELECT * FROM TEST WHERE TS='2014-12-08 00:38:10-0800'  ALLOW FILTERING;

丢弃(或者忽略)用于插入行的时间戳的毫秒部分

1418026180922 
//       ^^^^

所以日期不一样。

如果您已插入

INSERT INTO TEST(TS,VALUE,EMAILID) VALUES('14180261800000','sometext','email@');

您可以使用

检索它
select * from test where ts='2014-12-08 00:09:40-0800'; // note that I've fixed it from your '2014-12-08 00:38:10-0800'