cassandra - 获取cassandra cql select中的当前日期

标签 cassandra cql datastax datastax-enterprise cql3

在SQL中,我可以执行以下操作:

select getdate(), getdate() - 7


它返回当前日期以及当前日期-7天。我想在Cassandra CQL中实现相同的目的。我试过了:

select dateof(now())


但这不起作用。它仅适用于插入,不适用于选择。我怎么能得到相同的?任何帮助,将不胜感激。

最佳答案

select dateof(now())


单靠自己,你是对的,那是行不通的。但是,如果您有一个表,那么您知道它只有一行(例如system.local):

aploetz@cqlsh:stackoverflow> SELECT dateof(now()) FROM system.local ;

 dateof(now())
--------------------------
 2015-03-26 03:18:39-0500

(1 rows)


不幸的是,Cassandra CQL还没有支持算术运算,更不用说日期算术了。因此,从该值中减去7天是您在应用程序级别中必须要做的事情。

编辑20200422

较新的语法改为使用toTimestamp()函数:

aploetz@cqlsh> SELECT toTimestamp(now()) FROM system.local;

 system.totimestamp(system.now())
----------------------------------
  2020-04-22 13:22:04.752000+0000

(1 rows)


两种语法从20200422开始都有效。

关于cassandra - 获取cassandra cql select中的当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272691/

相关文章:

cassandra - Cassandra 如何处理 datastax java 驱动程序中的阻塞执行语句

java - 无法连接到嵌入式 Cassandra

cassandra - 如何使 Cassandra 对特定行键具有不同的列键?

cassandra - 驱动程序 datastax 驱动程序分页何时产生的页面少于请求的页面?

linux - 在 Linux 中运行 datastax intsallation runner 时出错

nosql - Membase 与 Cassandra?

java - 错误 : Could not find or load main class, Cassandra

r - 通过sparklyr将cassandra表导入spark - 可以仅选择某些列吗?

java - Cassandra-CQL ClusterBuilder 的 addContactPoints 的工作

java - Datastax Java 驱动程序可为 null=false