又到了写周报的时间了,你是不是又在统计:

  • 这周Close了多少Issue

  • 这周创建了哪些 Bug

  • 有哪些Issue将在下周过期

  • 项目报告里有哪些遗留问题最近几天一直都没有更新

随着Jira使用日益深入,对时间范围搜索的需求也越来越高,这篇文档就谈谈Jira JQL中的时间搜索

Jira JQL中的时间坐标

我们经常会看到一些JQL 这么写

  • created >= startOfDay(-1)

  • due <= 3d

那么这些 -1d、3d 都是什么意思呢?时间前面加-负号代表着什么?

其实也很容易理解,时间轴左减右加,就跟我们学的坐标轴一样,请看下图

JQL时间轴

一图胜千言,上图明确显示了时间轴

时间的起始点到底在哪儿?

上面的图主要说明了左减右加,如果你真正的要写JQL语句的时候就会发现还有一些地方不是很清楚,比如这个应该怎么查询:

最近三天更新过的Issue

先来审题画批, 假设当前是6月18日上午11点11分,那么最近三天到底是哪三天?题目本来就有一些歧义, 到底包不包括今天,从那天开始,我们先澄清一下歧义


>>如果需求是就是从在时间点开始往前推三天,即从 6月15日上午11点11分到现在

JQL时间

用JQL表达为

updated > -3d
CODE

因为更新不会大于 当前时间, 所以不用再加 <= now()



>>如果提需求的人说按照日历天,从6月15日开算,包括今天,范围从6月15日0点0分到当前时间

JQL时间

用JQL表达为

updated > startOfDay(-3)
CODE

startofDay() 指的今天(6月18日)的开始时间0点0分, startofDay(-3) 就是从今天(18日)0点往前推3天 是 15日0点0分

startofDay() 输入参数可以加时间单位,因为是startofDay,所以不线性的加时间单位的话就指的是day



>>如果提需求的不包括今天,按照日历天往前推3天,范围从6月15日0点0分到6月17日23:59:59

JQL时间

用JQL表达为

updated > startOfDay(-3) AND updated < startOfDay()
或
updated > startOfDay(-3) AND updated < endOfDay(-1)
CODE

endofDay() 是今天的结束时间, endofDay(-1) 即为昨天的结束时间


Tips

  • 使用相对时间会让报告更灵活,可以重复使用,如

    • 当前时间: now() , 3d, -4d

    • 相对起始时间: startofDay()/Week()/Month()/Year

    • 相对结束时间:endofDay()/Week()/Month()/Year