Jira JQL中startOfYear()/endOfYear()用法及查询无结果问题排查
JQL 11月工单查询错误原因及正确写法
问题原因
你的理解存在两处偏差,且原查询存在语法缺失:
- 偏移参数是基于函数的默认返回值叠加计算:
startOfYear()默认返回当年1月1日 00:00,叠加+11M后得到的是当年12月1日 00:00,并非你预期的11月1日;endOfYear()默认返回当年12月31日 23:59,叠加+11M后得到的是次年11月30日 23:59,完全超出11月的时间范围,自然查不到数据。 - 原JQL缺少必填的时间筛选字段:JQL要求时间筛选必须指定具体的时间属性(如创建时间
created、解决时间resolved、分配更新时间等),仅写after/before不符合语法规则,无法正常执行查询。
正确写法
优先使用适配月度查询的startOfMonth()/endOfMonth()函数,逻辑更直观不易出错:
- 固定查询当年11月整月、分配给指定人员的工单(以创建时间为例,可根据报表需求替换为其他时间字段):
-- 把"指定人员账号"替换为实际要筛选的用户账号,created可替换为resolved等你需要的时间字段 assignee = "指定人员账号" AND created >= startOfMonth("2024/11") AND created <= endOfMonth("2024/11")
- 如果你需要用
startOfYear()实现同等效果,偏移量要调整为+10M(1月加10个月为11月):
assignee = "指定人员账号" AND created >= startOfYear("+10M") AND created < startOfYear("+11M")
- 如果要做通用月度报表无需每次修改时间参数,可使用负偏移,比如查询上个月的工单:
assignee = "指定人员账号" AND created >= startOfMonth("-1M") AND created <= endOfMonth("-1M")
内容的提问来源于stack exchange,提问作者Jeff Boon
相关产品推荐
相关产品推荐

