CQL supports the following operators:

Operator | Description |
---|---|

- (unary) | Negates operand |

+ | Addition |

- | Substraction |

* | Multiplication |

/ | Division |

% | Returns the remainder of a division |

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.

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.