在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/