Skip to main content
Version: 1.0.0

Comparisons

Comparisons are used in where, join conditions, and having.

Basic operators

OperatorMeaning
=Equal
!=Not equal
<Less than
<=Less than or equal
>Greater than
>=Greater than or equal

JQL trims strings and converts numeric strings before ordinary comparison. This means the number 42 and the string "42" compare as equal. Date-like strings are converted to timestamps.

Ranges

between includes both ends of the range:

where total between 50 and 100

Both 50 and 100 match.

Dates and timestamps

Use after and before for time values:

where createdAt after '2026-07-01T00:00:00Z'

JQL accepts ISO date strings, Unix seconds, Unix milliseconds, and numeric strings. Unix seconds and milliseconds are normalized so they can be compared with ISO dates. Equal timestamps do not match after or before.

Null values

where archivedAt is null
where email is not null

is null matches both explicit JSON null and a missing field. is not null matches any other value.

Regular expressions

matches uses JavaScript regular-expression syntax:

where email matches '@example\.com$'
where reference matches '/^ord-[a-z0-9]+$/i'
where name not matches '^test'

A pattern may be plain text or slash-delimited with the JavaScript flags g, i, m, s, u, y, and d.

Membership

When the right value is an array, in checks whether that array contains the left value:

where requestedRole in allowedRoles

When either value is a string, in checks whether the right string contains the left string:

where status in 'paid,shipped'

Use not in for the opposite condition.