Sum the timeSpent in JQL over the period of time

Michal Dio October 31, 2017

Hi,

I'm strugling in summing up the timespent over the defined time period.

 

This query

worklogAuthor = User  AND  issueFunction in aggregateExpression("Total tracked", "timespent.sum()") AND worklogDate >=  startOfMonth() 

 

returns timespent on the issues over the whole existence of the issue. I cannot find the way how to get the sum only over defined time period. Can anybody help, with formulating such query?

 

Thanks a lot!

3 answers

4 votes
Gildas Amegninou September 14, 2018

I'm agree with @Andy Heinzer, but I wrote another solution here without SQL :

https://community.atlassian.com/t5/Jira-questions/Time-Spent-between-Two-dates-for-specific-Project-assigned-to-me/qaq-p/810717

 

I guess these two topics are close

1 vote
Jose Nino Martinez October 22, 2021

I use Excel for that purpose, have a query like 

project = yourproject AND worklogAuthor = user AND Sprint in OpenSprints()

In the list view, add Time Spent Attribute and then export to CSV Excel and then, Sum the column in Excel, time spent value is in seconds so I divide it by 3600 to have it in hours...You can automate the excel bit using macros.

If you don't have Excel then any CSV importing spreadsheet should be valid too...

1 vote
Andy Heinzer
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
November 1, 2017

Hi Michal,

JQL is limited in that it is only designed to return a list of Jira issues.  I understand that you are looking for a specific segment of data in those issues, but JQL is not granular enough to provide only this.  It is designed to return the issues in Jira that match your query and with it all the values in that issue.   In this case the Scriptrunner provided JQL function, aggregateExpression is still not going to change the values pulled in by the rest of the JQL query according to the documentation of this function.

Personally I think you would have better chance of success trying to get this data from the SQL database directly instead of JQL.   But this would probably require that you then manipulate the SQL results in something like Excel to sum only these values within a certain date range.

I was able to whip up a SQL query that can gather these specific worklogs based on the date they were created rather than all the worklogs for an issue that JQL is gathering:

SELECT wl.*, P.PKey || '-' || ji.IssueNum as IssueKey
FROM worklog wl
join jiraissue ji on ji.id = wl.issueid
join Project P on ji.Project = P.Id
where wl.created > '2017-10-01';

This returns the entire worklog table, but it also adds in the jira issue key, and then filters only entries created after the date I of Oct 1st.  The timeworked field in this table is the time worked on the issue in seconds.

I understand if this isn't exactly what you are looking for, but I can't see a way to do this within JQL currently.

Regards,
Andy

Stefan Radulian March 30, 2018

Hi, i have the same need and I am using Quick Timesheet Plugin.

I am defining a date range and use a specific filter for the type of issues i am interested in (e.g. bugs).

Can I expect the output to be accurate, i.e. time spent on certain issues in a given period of time?

Suggest an answer

Log in or Sign up to answer