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.