The instructions on this page describe how to use functions in JQL to define structured search queries to search for JIRA issues. Your search results will be displayed in the Issue Navigator, where you can export them to MS Excel and many other formats. You can also save and subscribe to your advanced searches if you wish.

When you perform an advanced search, you are using the JIRA Query Language (JQL).

This document also covers the reserved characters and words that JIRA uses.

Functions Reference

A function in JQL appears as a word followed by parentheses which may contain one or more explicit values or JIRA fields. In a clause, a function is preceded by an operator, which in turn is preceded by a field. A function performs a calculation on either specific JIRA data or the function's content in parentheses, such that only true results are retrieved by the function and then again by the clause in which the function is used.

On this page:

Related topics:

List of Functions

cascadeOption()

Search for issues that match the selected values of a 'cascading select' custom field.

The parentOption parameter matches against the first tier of options in the cascading select field. The childOption parameter matches against the second tier of options in the cascading select field, and is optional.

The keyword "none" can be used to search for issues where either or both of the options have no value.

Syntax
cascadeOption(parentOption)

or

cascadeOption(parentOption,childOption)
Supported Fields
  • custom fields of type 'Cascading Select'
Supported Operators
Examples
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and "New York" for the second tier:

    location in cascadeOption("USA","New York")
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and any value (or no value) for the second tier:

    location in cascadeOption("USA")
  • Find issues where a custom field ("Location") has the value "USA" for the first tier and no value for the second tier:

    location in cascadeOption("USA",none)
  • Find issues where a custom field ("Location") has no value for the first tier and no value for the second tier:

    location in cascadeOption(none)
  • Find issues where a custom field ("Referrer") has the value "none" for the first tier and "none" for the second tier:

    referrer in cascadeOption("\"none\"","\"none\"")
  • Find issues where a custom field ("Referrer") has the value "none" for the first tier and no value for the second tier:

    referrer in cascadeOption("\"none\"",none)

^top of functions | ^^top of topic

 

closedSprints()

(info) Only available if you are using GreenHopper.

Search for issues that are assigned to a completed Sprint. (Note that it is possible for an issue to belong to both a completed Sprint(s) and an incomplete Sprint(s).)

See also openSprints().

Syntax
closedSprints()
Supported Fields
Supported Operators

Examples
  • Find all issues that are assigned to a completed Sprint.

    sprint in closedSprints()

^top of functions | ^^top of topic

 

componentsLeadByUser()

Find issues in components that are lead by a specific user.

You can optionally specify a user, or if the user is omitted the current user (i.e. you) will be used.

Note that if you are not logged in to JIRA, a user must be specified.

Syntax
componentsLeadByUser()

or

componentsLeadByUser(username)
Supported Fields
Supported Operators
Examples
  • Find open issues in components that are lead by you:

    component in componentsLeadByUser() AND status = Open
  • Find open issues in components that are lead by Bill:

    component in componentsLeadByUser(bill) AND status = Open

^top of functions | ^^top of topic

currentLogin()

Perform searches based on the time at which the current user's session began. See also lastLogin.

Syntax
currentLogin()
Supported Fields
Supported Operators
Examples
  • Find issues that have been created during my current session:

    created > currentLogin()

^top of functions | ^^top of topic

currentUser()

Perform searches based on the currently logged-in user.

Note that this function can only be used by logged-in users. So if you are creating a saved filter that you expect to be used by anonymous users, do not use this function.

Syntax
currentUser()
Supported Fields
Supported Operators
Examples
  • Find issues that are assigned to me:

    assignee = currentUser()
  • Find issues that were reported to me but are not assigned to me:

    reporter = currentUser() and assignee != currentUser()

^top of functions | ^^top of topic

earliestUnreleasedVersion()

Perform searches based on the earliest unreleased version (i.e. next version that is due to be released) of a specified project. See also unreleasedVersions.

Note that the "earliest" is determined by the ordering assigned to the versions, not by actual Version Due Dates.

Syntax
earliestUnreleasedVersion(project)
Supported Fields
Supported Operators
Examples
  • Find issues whose FixVersion is the earliest unreleased version of the ABC project:

    fixVersion = earliestUnreleasedVersion(ABC)
  • Find issues that relate to the earlist unreleased version of the ABC project:

    affectedVersion = earliestUnreleasedVersion(ABC) or fixVersion = earliestUnreleasedVersion(ABC)

^top of functions | ^^top of topic

endOfDay()

Perform searches based on the end of the current day. See also endOfWeek, endOfMonth and endOfYear; and startOfDay, startOfWeek, startOfMonth and startOfYear.

Syntax
endOfDay()

or

endOfDay("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfDay("+1") is the same as endOfDay("+1d").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find issues due by the end of today:

    due < endOfDay()
  • Find issues due by the end of tomorrow:

    due < endOfDay("+1")

^top of functions | ^^top of topic

endOfMonth()

Perform searches based on the end of the current month. See also endOfDay, endOfWeek and endOfYear; and startOfDay, startOfWeek, startOfMonth and startOfYear.

Syntax
endOfMonth()

or

endOfMonth("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfMonth("+1") is the same as endOfMonth("+1M").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find issues due by the end of this month:

    due < endOfMonth()
  • Find issues due by the end of next month:

    due endOfMonth("+1")
  • Find issues due by the 15th of next month:

    due endOfMonth("+15d")

^top of functions | ^^top of topic

endOfWeek()

Perform searches based on the end of the current week. See also endOfDay, endOfMonth and endOfYear; and startOfDay, startOfWeek, startOfMonth and startOfYear.

For the endOfWeek() function the result depends upon your locale. For example, in Europe the first day of the week is generally considered to be Monday, while in the USA it is considered to be Sunday.

Syntax
endOfWeek()

or

endOfWeek("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfWeek("+1") is the same as endofWeek("+1w").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find issues due by the end of this week:

    due < endOfWeek()
  • Find issues due by the end of next week:

    due < endOfWeek("+1")

^top of functions | ^^top of topic

endOfYear()

Perform searches based on the end of the current year. See also startOfDay, startOfWeek and startOfMonth; and endOfDay, endOfWeek, endOfMonth and endOfYear.

startOfYear()

or

startOfYear("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. endOfYear("+1") is the same as endofYear("+1y").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find issues due by the end of this year:

    due < endOfYear()
  • Find issues due by the end of March next year:

    due < endOfYear("+3M")

^top of functions | ^^top of topic

issueHistory()

Find issues that you have recently viewed, i.e. issues that are in the 'Recent Issues' section of the 'Issues' drop-down menu.

Note:

  • issueHistory() returns up to 50 issues, whereas the 'Recent Issues' drop-down returns only 5.
  • if you are not logged in to JIRA, only issues from your current browser session will be included.
Syntax
issueHistory()
Supported Fields
Supported Operators
Examples
  • Find issues which I have recently viewed, that are assigned to me:

    issue in issueHistory() AND assignee = currentUser()

^top of functions | ^^top of topic

lastLogin()

Perform searches based on the time at which the current user's previous session began. See also currentLogin.

Syntax
currentLogin()
Supported Fields
Supported Operators
Examples
  • Find issues that have been created during my last session:

    created > lastLogin()

^top of functions | ^^top of topic

latestReleasedVersion()

Perform searches based on the latest released version (i.e. the most recent version that has been released) of a specified project. See also releasedVersions().

Note that the "latest" is determined by the ordering assigned to the versions, not by actual Version Due Dates.

Syntax
latestReleasedVersion(project)
Supported Fields
Supported Operators
Examples
  • Find issues whose FixVersionis the latest released version of the ABC project:

    fixVersion = latestReleasedVersion(ABC)
  • Find issues that relate to the latest released version of the ABC project:

    affectedVersion = latestReleasedVersion(ABC) or fixVersion = latestReleasedVersion(ABC)

^top of functions | ^^top of topic

linkedIssues()

Perform searches based on issues which are linked to a specified issue.

You can optionally restrict the search to links of a particular type. Note that LinkType is case-sensitive.

Syntax
linkedIssues(issueKey)

or

linkedIssues(issueKey,linkType)
Supported Fields
Supported Operators
Examples
  • Find issues that are linked to a particular issue:

    issue in linkedIssues(ABC-123)
  • Find issues that are linked to a particular issue via a particular type of link:

    issue in linkedIssues(ABC-123,"is duplicated by")

^top of functions | ^^top of topic

membersOf()

Perform searches based on the members of a particular group.

Syntax
membersOf(Group)
Supported Fields
Supported Operators
Examples
  • Find issues where the Assignee is a member of the group "jira-developers":

    assignee in membersOf("jira-developers")
  • Search through multiple groups and a specific user, e.g:

    reporter in membersOf("jira-developers") or reporter in membersOf("jira-administrators") or reporter=jsmith
  • Search for a particular group, but exclude a particular member or members, e.g.:

    assignee in membersOf(QA) and assignee not in ("John Smith","Jill Jones")
  • Exclude members of a particular group:

    assignee not in membersOf(QA)

^top of functions | ^^top of topic

now()

Perform searches based on the current time.

Syntax
now()
Supported Fields
Supported Operators
Examples
  • Find issues that are overdue:

    duedate < now() and status not in (closed, resolved) 

^top of functions | ^^top of topic

 

openSprints()

(info) Only available if you are using GreenHopper.

Search for issues that are assigned to a Sprint which has not yet been completed. (Note that it is possible for an issue to belong to both a completed Sprint(s) and an incomplete Sprint(s).)

See also closedSprints().

Syntax
openSprints()
Supported Fields
Supported Operators

Examples
  • Find all issues that are assigned to a Sprint which has not yet been completed.

    sprint in openSprints()

     

^top of functions | ^^top of topic

 

projectsLeadByUser()

Find issues in projects that are lead by a specific user.

You can optionally specify a user, or if the user is omitted the current user will be used.

Note that if you are not logged in to JIRA, a user must be specified.

Syntax
projectsLeadByUser()

or

projectsLeadByUser(username)
Supported Fields
Supported Operators
Examples
  • Find open issues in projects that are lead by you:

    project in projectsLeadByUser() AND status = Open
  • Find open issues in projects that are lead by Bill:

    project in projectsLeadByUser(bill) AND status = Open

^top of functions | ^^top of topic

projectsWhereUserHasPermission()

Find issues in projects where you have a specific permission.

Note: This function operates at the project level. This means that if a permission (e.g. "Edit Issues") is granted to the reporter of issues in a project, then you may see some issues returned where you are
not the reporter and therefore don't have the permission specified.

Also note that this function is only available if you are logged in to JIRA.

Syntax
projectsWhereUserHasPermission(permission)

For the permission parameter you can specify any of the following:

Supported Fields
Supported Operators
Examples
  • Find open issues in projects where you have the "Resolve Issues" permission:

    project in projectsWhereUserHasPermission("Resolve Issues") AND status = Open

^top of functions | ^^top of topic

projectsWhereUserHasRole()

Find issues in projects where you have a specific role.

Note that this function is only available if you are logged in to JIRA.

Syntax
projectsWhereUserHasRole(rolename)
Supported Fields
Supported Operators
Examples
  • Find open issues in projects where you have the "Developers" role:

    project in projectsWhereUserHasRole("Developers") AND status = Open

^top of functions | ^^top of topic

releasedVersions()

Perform searches based on the released versions (i.e. versions that your JIRA administrator has released) of a specified project.

You can also search on the released versions of all projects, by omitting the project parameter.

See also latestReleasedVersion().

Syntax
releasedVersions()

or

releasedVersions(project)
Supported Fields
Supported Operators
Examples
  • Find issues whose FixVersion is a released version of the ABC project:

    fixVersion in releasedVersions(ABC)
  • Find issues that relate to released versions of the ABC project:

    (affectedVersion in releasedVersions(ABC)) or (fixVersion in releasedVersions(ABC))

^top of functions | ^^top of topic

standardIssueTypes()

Perform searches based on "standard" Issue Types, that is, search for issues which are not sub-tasks.

See also subtaskIssueTypes().

Syntax
standardIssueTypes()
Supported Fields
Supported Operators
Examples
  • Find issues that are not subtasks (i.e. issues whose Issue Type is a standard issue type, not a subtask issue type):

    issuetype in standardIssueTypes()

^top of functions | ^^top of topic

startOfDay()

Perform searches based on the start of the current day. See also startOfWeek, startOfMonth and startOfYear; and endOfDay, endOfWeek, endOfMonth and endOfYear.

Syntax
startOfDay()

or

startOfDay("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfDay("+1") is the same as startofDay("+1d").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find new issues created since the start of today:

    created > startOfDay()
  • Find new issues created since the start of yesterday:

    created > startOfDay("-1")
  • Find new issues created in the last three days:

    created > startOfDay("-3d")

^top of functions | ^^top of topic

startOfMonth()

Perform searches based on the start of the current month. See also startOfDay, startOfWeek and startOfYear; and endOfDay, endOfWeek, endOfMonth and endOfYear.

Syntax
startOfMonth()

or

startOfMonth("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfMonth("+1") is the same as startofMonth("+1M").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find new issues since the start of this month:

    created > startOfMonth()
  • Find new issues since the start of last month:

    created > startOfMonth("-1")
  • Find new issues since the 15th of this month:

    created > startOfMonth("+14d")

^top of functions | ^^top of topic

startOfWeek()

Perform searches based on the start of the current week. See also startOfDay, startOfMonth and startOfYear; and endOfDay, endOfWeek, endOfMonth and endOfYear.

For the startOfWeek() function the result depends upon your locale. For example, in Europe the first day of the week is generally considered to be Monday, while in the USA it is considered to be Sunday.

Syntax
startOfWeek()

or

startOfWeek("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfWeek("+1") is the same as startofWeek("+1w").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find new issues since the start of this week:

    created > startOfWeek()
  • Find new issues since the start of last week:

    created > startOfWeek("-1")

^top of functions | ^^top of topic

startOfYear()

Perform searches based on the start of the current year. See also startOfDay, startOfWeek and startOfMonth; and endOfDay, endOfWeek, endOfMonth and endOfYear.

startOfYear()

or

startOfYear("inc")

where inc is an optional increment of (+/-)nn(y|M|w|d|h|m)

  • If the time unit qualifier is omitted it defaults to the natural period of the function, e.g. startOfYear("+1") is the same as startofYear("+1y").
  • If the plus/minus (+/-) sign is omitted, plus is assumed.
Supported Fields
Supported Operators
Examples
  • Find new issues since the start of this year:

    created > startOfYear()
  • Find new issues since the start of last year:

    created > startOfYear("-1")

^top of functions | ^^top of topic

subtaskIssueTypes()

Perform searches based on issues which are sub-tasks.

See also standardIssueTypes().

Syntax
subtaskIssueTypes()
Supported Fields
Supported Operators
Examples
  • Find issues that are subtasks (i.e. issues whose Issue Type is a subtask issue type):

    issuetype in subtaskIssueTypes()

^top of functions | ^^top of topic

unreleasedVersions()

Perform searches based on the unreleased versions (i.e. versions that your JIRA administrator has not yet released) of a specified project.

You can also search on the unreleased versions of all projects, by omitting the project parameter.

See also earliestUnreleasedVersion().

Syntax
unreleasedVersions()

or

unreleasedVersions(project)
Supported Fields
Supported Operators
Examples
  • Find issues whose FixVersionis an unreleased version of the ABC project:

    fixVersion in unreleasedVersions(ABC)
  • Find issues that relate to unreleased versions of the ABC project:

    affectedVersion in unreleasedVersions(ABC)

    or

    fixVersion in unreleasedVersions(ABC)

^top of functions | ^^top of topic

votedIssues()

Perform searches based on issues for which you have voted. Also see the Voter field.

Note that this function can only be used by logged-in users.

Syntax
votedIssues()
Supported Fields
Supported Operators
Examples
  • Find issues that you have voted for:

    issue in votedIssues()

^top of functions | ^^top of topic

watchedIssues()

Perform searches based on issues which you are watching. Also see the Watcher field.

Note that this function can only be used by logged-in users.

Syntax
watchedIssues()
Supported Fields
Supported Operators
Examples
  • Find issues that you are watching:

    issue in watchedIssues()
Supported Fields
Supported Operators
Examples
  • Find issues that you have recently viewed:

    issue in issueHistory()

Reserved Characters

JQL has a list of reserved characters:

If you wish to use these characters in queries, you need to:

The text fields are:

For example:

version = "[example]"
version = "4.2"
summary ~ "\\[example\\]"
summary ~ "4.2"

Reserved Words

JQL has a list of reserved words. These words need to be surrounded by quote-marks if you wish to use them in queries:

"abort", "access", "add", "after", "alias", "all", "alter", "and", "any", "as", "asc",
"audit", "avg", "before", "begin", "between", "boolean", "break", "by", "byte", "catch", "cf",
"char", "character", "check", "checkpoint", "collate", "collation", "column", "commit", "connect", "continue",
"count", "create", "current", "date", "decimal", "declare", "decrement", "default", "defaults", "define", "delete",
"delimiter", "desc", "difference", "distinct", "divide", "do", "double", "drop", "else", "empty", "encoding",
"end", "equals", "escape", "exclusive", "exec", "execute", "exists", "explain", "false", "fetch", "file", "field",
"first", "float", "for", "from", "function", "go", "goto", "grant", "greater", "group", "having",
"identified", "if", "immediate", "in", "increment", "index", "initial", "inner", "inout", "input", "insert",
"int", "integer", "intersect", "intersection", "into", "is", "isempty", "isnull", "join", "last", "left",
"less", "like", "limit", "lock", "long", "max", "min", "minus", "mode", "modify",
"modulo", "more", "multiply", "next", "noaudit", "not", "notin", "nowait", "null", "number", "object",
"of", "on", "option", "or", "order", "outer", "output", "power", "previous", "prior", "privileges",
"public", "raise", "raw", "remainder", "rename", "resource", "return", "returns", "revoke", "right", "row",
"rowid", "rownum", "rows", "select", "session", "set", "share", "size", "sqrt", "start", "strict",
"string", "subtract", "sum", "synonym", "table", "then", "to", "trans", "transaction", "trigger", "true",
"uid", "union", "unique", "update", "user", "validate", "values", "view", "when", "whenever", "where",
"while", "with"

 

You can use either single quote-marks (') or double quote-marks (").

(Note for JIRA administrators: this list is hard coded in the JqlStringSupportImpl.java file.)