cassandra - 删除 CQL 中时间数据类型的尾随零

标签 cassandra cql

尝试删除 arrival_time 的尾随零,列数据类型为时间

SELECT * FROM TABLE

我得到了这个:

站名 |到达时间 --------------+-------------------- 惠灵顿 | 06:05:00.000000000

我需要这样的结果:

站名 |到达时间 --------------+-------------------- 惠灵顿 | 06:05:00

我是 CQL 的新手,在此先感谢。

最佳答案

所以你实际上不能在 Cassandra 中使用 time 类型来做到这一点。但是,您可以使用 timestamp 来完成。

cassdba@cqlsh:stackoverflow> CREATE TABLE arrival_time2 (station_name TEXT PRIMARY KEY, 
    arrival_time time, arrival_timestamp timestamp);
cassdba@cqlsh:stackoverflow> INSERT INTO arrival_time2 (station_name , arrival_time , arrival_timestamp)
    VALUES ('Wellington','06:05:00','2018-03-22 06:05:00');
cassdba@cqlsh:stackoverflow> SELECT * FROM arrival_time2;

 station_name | arrival_time       | arrival_timestamp
--------------+--------------------+---------------------------------
   Wellington | 06:05:00.000000000 | 2018-03-22 11:05:00.000000+0000

(1 rows)

当然,这也不是您想要的,真的。所以接下来你需要在 ~/.cassandra/cqlshrc[ui] 部分设置一个 time_format

[ui]
time_format = %Y-%m-%d %H:%M:%S

重新启动 cqlsh,这应该可以工作:

Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cassdba@cqlsh> SELECT station_name,arrival_timestamp
    FROm stackoverflow.arrival_time2 ;

 station_name | arrival_timestamp
--------------+---------------------
 Wellington | 2018-03-22 11:05:00

(1 rows)

关于cassandra - 删除 CQL 中时间数据类型的尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421277/

相关文章:

cassandra - UUID 或 Integer 是作为分区键的好选择吗?

ajax 和数据库之间的 Java 库

hadoop - 如何/在哪里可以写入时间序列数据?作为 Hadoop、HBase、Cassandra 的 Parquet 格式?

java - 使用 Cassandra 的 Java 驱动程序进行 Multi-Tenancy

Cassandra : Multiple tables vs materialized view

cassandra - 根据 Where 子句更新 Cassandra 中的列

cassandra - cassandra 中多个相同结构的表和一张包含多行的表哪个更好

java - Cassandra Java 驱动程序 - QueryBuilder API 与 PreparedStatements

cassandra - 如何可视化 Cassandra 中的原子性?

java - 使用java从cassandra读取数据