2016-12-27 9 views
0

私はのように見えるCQLクエリ記述しようとしています:CQLのWHERE句で基本的な算術演算を使用する方法は?

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 

と、このエラーを取得していた:

Invalid syntax at line 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')) 

にクエリを変更した場合、それはありません任意のエラーを与えるが、私はtimestampの列が秒を格納しているのに対して、unixTimestampOfはミリ秒を返しますので、明らかに私は望みの結果を得られません。これをどうすれば解決できますか?

+0

ミリ秒も 'timestamp'カラムに保存しないのはなぜですか? 'timestamp'の列の型が' timestamp'の場合は、既にミリ秒があります。 – xmas79

答えて

0

このJIRAチケットは、おそらくあなたが探しているものです:Operator functionality in CQL。まだ解決されていませんが、動き出しています。 Add support for arithmetic operatorsのサブタスクの1つが最近解決されたとマークされており、Cassandra 3.12でマージされていますが、数値データ型でのみ機能します。私はそれがあなたのスキーマではうまくいかないと思うので、おそらくタイムスタンプを数値データ型に変更する必要があります。

HTH。

関連する問題