获取cassandra cql select中的当前日期

Hit*_*esh 12 cql cassandra datastax-enterprise cql3 datastax

在SQL中,我能够做到:

select getdate(), getdate() - 7
Run Code Online (Sandbox Code Playgroud)

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

select dateof(now())
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*ron 29

select dateof(now())
Run Code Online (Sandbox Code Playgroud)

就其本身而言,你是正确的,这是行不通的.但是如果你有一个你知道只有一行的表(比如system.local):

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

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

(1 rows)
Run Code Online (Sandbox Code Playgroud)

不幸的是,Cassandra CQL没有(CASSANDRA-5505)包含对算术运算的支持,更不用说日期算术了.因此,从您的值中减去7天是您在应用程序级别必须要做的事情.

  • @arbitrarystringofletters在[CASSANDRA-11936](https://issues.apache.org/jira/browse/CASSANDRA-11936)的cassandra 4.0中添加日期的基本算法 (2认同)