2016-03-03 42 views
0

我有下表。Cassandra - EQ关系在时间戳主键上不起作用

CREATE TABLE experiment(
    id uuid, 
    country text, 
    data text, 
    insert_timestamp timestamp, 
    PRIMARY KEY(insert_timestamp)); 

我通过

INSERT INTO experiment(id, country, data, insert_timestamp) VALUES (uuid(), 'my', 'the data', dateof(now())); 

插入数据当我

SELECT * from experiment; 

我得到

insert_timestamp   | country | data  | id 
--------------------------+---------+----------+-------------------------------------- 
2016-03-03 03:04:36+0000 |  my | the data | e08cddd2-b93d-4e39-b0f3-82b813f83a87 

但是,如果我SELECT通过insert_timestamp

SELECT * from experiment WHERE insert_timestamp = '2016-03-03 03:04:36+0000'; 

我得到空的结果。

insert_timestamp | country | data | id 
------------------+---------+------+---- 

(0 rows) 

任何想法为什么这样?

回答

0

时间戳。字符串常量允许输入时间戳作为日期, 请参阅以下日期以获取更多信息。带有 格式的日期戳返回YYYY-MM-DD HH:MM:SS.SSS。

因此,当您使用2016-03-03 03:04:36+0000查询数据时,它被解释为2016-03-03 03:04:36.0+0000,当您插入数据时,这可能不正确。 因此它返回0行。 注意: cql shell中可见的日期格式在cqlshrc文件的UI部分配置。

另外dateOf函数已被弃用Details。并根据您的数据模型,如果有多个线程同时写入数据,您的数据将被覆盖。