issueFunction in dateCompare example
Asked by Daria Pavlova:

Dear community!

Here I am again searching for a help.  

I am trying to use *issueFunction in dateCompare* in my JQL request and I am repeatedly getting errors instead of what I want.   

For example I try to find issues that had not been commented within one week of creation:

project = Operations AND issueFunction in dateCompare("created +1w \< firstCommented")  

and I get:  

Scripted function "dateCompare" compilation failure. Contact administrator and check logs. Message: The comparison must contain exactly one comparison operator which is either \>, \<, =, \<= or \>=.  

Can someone give me a whole line of successful JQL request so I can repeat it with my own data?  

Just cannot get how it works. Please help. Thank you!   


Answers:
author: Tessa Tuteleers
body: Hi [@Daria Pavlova](/t5/user/viewprofilepage/user-id/4600279) ,

you forgot something in your syntax.

The JQL query works as follows:  

```
dateCompare(Subquery, date comparison expression)
```

You added the subquery in front of the issuefunction, and jumped right to the date comparison.

You can do what you want in 2 ways:

* keep your project conditon in front and use an empty subquery (better)

  ```
  project = Operations AND issueFunction in dateCompare("", "created +1w < firstCommented")
  ```

* add your condition as subquery (less performant)

  ```
   issueFunction in dateCompare("project = Operations", "created +1w < firstCommented")
  ```

Hope this helps!

* Tessa

comments: author: Steve Letch
body: I'm having a bit of trouble with the formatting when you try and put things with two words in the subquery

issueFunction in dateCompare("Issuetype = Planned Change AND created \>= startOfYear()", "Scheduled End \< Scheduled Start")

Error in the JQL Query: Expecting either 'OR' or 'AND' but got 'Change'. (line 1, character 21)


author: Tessa Tuteleers
body: Hi [@Steve Letch](/t5/user/viewprofilepage/user-id/4246974),

if you want to use multi word strings, you always need to quote them, if you are already using double quotes as you are now, you can use single quotes within them.

This would look like that for you:

```
?issueFunction in dateCompare("Issuetype = 'Planned Change' AND created >= startOfYear()", "'Scheduled End' < 'Scheduled Start' ")
```

Could you confirm this works for you?

Cheers,   
Tessa


author: Steve Letch
body: Been off sick a couple days but will check tomorrow, thanks


author: Constance Hua
body: Hi Tessa,

unfortunately this does not work either:

* JQL: issueFunction in dateCompare("", "'Period End' \> 'Period Start'+1M ")
* Error: **Scripted function "dateCompare" compilation failure. Contact administrator and check logs. Message: Field name: 'Period End' not found or not a date or datetime.**

It seems that this function is not well configured because it does not work with fields which have spaces in the name.

I also tried with cf\[1234\] and other date fields on the system but no luck.


author: Constance Hua
body: Hi all, I contacted the support and here is the answer for future reference:

"I believe you don't need to add a single quotation for the custom field when using the dateCompare() JQL function."  

```
issueFunction in dateCompare("", "end date > start date+1M")
```


author: Tobias Steinh?usler
body: Hi, I am having the same issue as above. I am using this JQL:  
*issueFunction in dateCompare("", "Target end+1w \> Epic Committed Target end")*

The JQL runs successfully, however it seems to ignore the "+1w" calculation.

When I run the query WITHOUT the "+1" it returns all issues where the "Target end" is bigger that the "Epic Committed Target End" date as expected *issueFunction in dateCompare("", "Target end \> Epic Committed Target end"),*

However when I add the "+1w" clause it returns ALL Epics also where the dates are different...