Arithmetic Operators

CQL supports the following operators:

OperatorDescription

- (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/righttinyintsmallintintbigintcounterfloatdoublevarintdecimal

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:

  1. 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.