Jira 8.13.10查询自昨日状态变更的JQL为何部分项目无结果
问题排查结论
Jira 不存在按项目单独配置 startOfDay 函数生效规则的能力,该函数的计算逻辑全局统一,你遇到的结果遗漏问题可从以下几个原因排查:
- 时间函数的时区偏移:
startOfDay(-1d)的计算基于运行JQL的用户个人时区,而非Jira系统时区或项目时区。如果你的个人时区和系统时区存在差值,刚好会导致部分昨日早些时段的状态变更被判定为在startOfDay(-1d)之前,从而被过滤。你换成-28h偏移后刚好覆盖了时区差值的区间,所以能返回完整结果。 - 项目关联的工作日历差异:Jira支持为单个项目绑定独立的工作日历,可自定义每日工作起止时间、休息日规则。
startOfDay函数在看板上下文运行时,会受项目关联的工作日历影响出现计算偏移,导致不同项目的同一时间点的状态变更判定结果不一致。 - 8.13.x版本的已知索引bug:你使用的Jira 8.13.x版本存在多个JQL时间函数、
was运算符相关的索引缓存问题,不同项目的事务索引更新时机不一致,会导致同时间的状态变更部分被漏筛,扩大时间范围后刚好覆盖了索引延迟的区间,结果就符合预期。
适配无配置修改权限的解决方案
你可以用更精准的status changed to语法替换原有逻辑,既更贴合「自昨日起变更为目标状态」的需求,也能避免原有status was not in写法可能误筛历史曾进入过目标状态的事务的问题:
status in (Closed, Done) AND status changed to (Closed, Done) AFTER startOfDay(-1d)
如果上述写法仍然存在结果遗漏,可以直接固定使用你验证过的-28h偏移量写法,无需依赖startOfDay的按天计算逻辑。
内容的提问来源于stack exchange,提问作者Roger Magnesved
相关产品推荐
相关产品推荐

