是否可以在 Cassandra 的 select 语句中使用自纪元以来的毫秒时间戳?
Is it possible to use a timestamp in ms since epoch in select statement for Cassandra?
我知道使用此处列出的格式 (http://docs.datastax.com/en/cql/3.0/cql/cql_reference/timestamp_type_r.html) 可以查询 cassandra。但是,我很难确定是否有可能在 select 语句中使用 ms since epoch。
我觉得应该这样做,因为它可以在纪元后的毫秒内将数据发送到 cassandra(从上面看:时间戳类型可以作为 CQL 输入的整数输入),但我这样做的尝试失败了我找不到任何说明这两种方式的文档。
谢谢!
是的,您可以在 select 语句中使用整数时间戳。
cassandra@cqlsh:testkeyspace> CREATE TABLE test (key int, ts timestamp, v int, PRIMARY KEY (key, ts));
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481000, 0);
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481001, 1);
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481002, 2);
cassandra@cqlsh:testkeyspace> SELECT ts, v FROM test WHERE key = 0;
ts | v
--------------------------+---
2015-06-19 14:18:01-0500 | 0
2015-06-19 14:18:01-0500 | 1
2015-06-19 14:18:01-0500 | 2
(3 rows)
cassandra@cqlsh:testkeyspace> SELECT ts, v FROM test WHERE key=0 AND ts >= 1434741481001;
ts | v
--------------------------+---
2015-06-19 14:18:01-0500 | 1
2015-06-19 14:18:01-0500 | 2
(2 rows)
我知道使用此处列出的格式 (http://docs.datastax.com/en/cql/3.0/cql/cql_reference/timestamp_type_r.html) 可以查询 cassandra。但是,我很难确定是否有可能在 select 语句中使用 ms since epoch。
我觉得应该这样做,因为它可以在纪元后的毫秒内将数据发送到 cassandra(从上面看:时间戳类型可以作为 CQL 输入的整数输入),但我这样做的尝试失败了我找不到任何说明这两种方式的文档。
谢谢!
是的,您可以在 select 语句中使用整数时间戳。
cassandra@cqlsh:testkeyspace> CREATE TABLE test (key int, ts timestamp, v int, PRIMARY KEY (key, ts));
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481000, 0);
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481001, 1);
cassandra@cqlsh:testkeyspace> INSERT INTO test (key, ts, v) VALUES (0, 1434741481002, 2);
cassandra@cqlsh:testkeyspace> SELECT ts, v FROM test WHERE key = 0;
ts | v
--------------------------+---
2015-06-19 14:18:01-0500 | 0
2015-06-19 14:18:01-0500 | 1
2015-06-19 14:18:01-0500 | 2
(3 rows)
cassandra@cqlsh:testkeyspace> SELECT ts, v FROM test WHERE key=0 AND ts >= 1434741481001;
ts | v
--------------------------+---
2015-06-19 14:18:01-0500 | 1
2015-06-19 14:18:01-0500 | 2
(2 rows)