如何在CQL的WHERE子句中使用基本算术运算?

时间:2016-12-27 23:48:13

标签: cql

我正在尝试编写一个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列存储秒。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这张JIRA门票是您可能正在寻找的:Operator functionality in CQL。它仍然没有得到解决,但它正在继续。其中一个子任务Add support for arithmetic operators最近被标记为已解决,并且正在Cassandra 3.12中合并,但它仅适用于数字数据类型。我认为它不会与您的架构一起开箱即用,您可能需要将时间戳更改为数字数据类型。

HTH。