我正在尝试编写一个CQL查询,如下所示:
select * from mytable
WHERE timestamp >= unixTimestampOf(maxTimeuuid('2016-03-01 00:00:00')) /1000
and timestamp <= unixTimestampOf(minTimeuuid('2016-03-31 23:59:59')) / 1000
我收到此错误:
第1行的语法无效,char XXX
如果我将查询更改为
select * from mytable
WHERE timestamp >= unixTimestampOf(maxTimeuuid('2016-03-01 00:00:00'))
and timestamp <= unixTimestampOf(minTimeuuid('2016-03-31 23:59:59'))
它没有给出任何错误,但显然我没有得到所需的结果,因为unixTimestampOf
返回毫秒,而我的timestamp
列存储秒。我该如何解决这个问题?
答案 0 :(得分:0)
这张JIRA门票是您可能正在寻找的:Operator functionality in CQL。它仍然没有得到解决,但它正在继续。其中一个子任务Add support for arithmetic operators最近被标记为已解决,并且正在Cassandra 3.12中合并,但它仅适用于数字数据类型。我认为它不会与您的架构一起开箱即用,您可能需要将时间戳更改为数字数据类型。
HTH。