Arithmetic Operators

CQL supports the following operators:

Operator Description
- (unary) Negates operand
+ Addition
- Substraction
* Multiplication
/ Division
% Returns the remainder of a division

Number Arithmetic

All arithmetic operations are supported on numeric types or counters.

The return type of the operation will be based on the operand types:

left/right tinyint smallint int bigint counter float double varint decimal
tinyint tinyint smallint int bigint bigint float double varint decimal
smallint smallint smallint int bigint bigint float double varint decimal
int int int int bigint bigint float double varint decimal
bigint bigint bigint bigint bigint bigint double double varint decimal
counter bigint bigint bigint bigint bigint double double varint decimal
float float float float double double float double decimal decimal
double double double double double double double double decimal decimal
varint varint varint varint decimal decimal decimal decimal decimal decimal
decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal

*, / and % operators have a higher precedence level than + and - operator. By consequence, they will be evaluated before. If two operator in an expression have the same precedence level, they will be evaluated left to right based on their position in the expression.

Datetime Arithmetic

A duration can be added (+) or substracted (-) from a timestamp or a date to create a new timestamp or date. So for instance:

SELECT * FROM myTable WHERE t = '2017-01-01' - 2d

will select all the records with a value of t which is in the last 2 days of 2016.