You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确查询特定用户指定日期后修改的Work Item列表?

如何查询特定用户在指定日期后修改过的工作项(Azure DevOps)

嘿,我完全懂你的困扰!之前那两种查询逻辑确实都没戳中你的真实需求:要么只显示最近一次修改是用户X的工作项(漏掉了用户X改过后别人又修改的项),要么把最近7天有任何变动但用户X早就改过的项也混进来了。别慌,咱们来搞定这个精准查询的问题!

先说说之前两种查询为啥不行

  • 用 Changed by = user X AND changed date >= @today - 7:这个逻辑是要求最后一次修改必须是用户X,且这次修改在7天内。但如果用户X改完之后,其他人又对这个工作项做了修改,它就不会出现在结果里——这显然不是你要的。
  • 用 Changed by WAS EVER user X AND changed date >= @today - 7:这个是只要用户X曾经改过(哪怕是一年前),且最近7天有任何人碰过这个工作项,就会被列出来。完全不符合“用户X在指定日期后修改过”的核心需求。

正确的解决方案:基于工作项历史记录的筛选

要实现“找出所有用户X在指定日期后有过修改操作的工作项”,我们需要直接查询工作项的修改历史,判断是否存在符合条件的修改记录。这里分两种方式实现:

方式1:使用WIQL(工作项查询语言)

如果你熟悉WIQL,可以直接用下面的查询语句,它会遍历每个工作项的历史记录,只要有一条是用户X在最近7天内的修改,就会把该工作项纳入结果:

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.ChangedDate],
    [System.ChangedBy]
FROM WorkItems
WHERE
    EXISTS (
        SELECT *
        FROM WorkItemHistory
        WHERE
            [System.ChangedBy] = '用户X的邮箱/显示名'
            AND [System.ChangedDate] >= @today - 7
    )
ORDER BY [System.ChangedDate] DESC

你可以把这段代码复制到Azure DevOps的“查询编辑器”→“导入WIQL”功能里直接使用,记得把用户X的邮箱/显示名替换成实际值。

方式2:使用可视化查询编辑器(不用写代码)

如果你更习惯图形化操作,按下面的步骤来:

  1. 打开Azure DevOps,新建一个平板查询,进入查询编辑器。
  2. 点击顶部的「选项」按钮,勾选「显示历史记录条件」(这一步是关键,默认不会显示历史相关的筛选选项)。
  3. 现在添加子句时,会出现「针对」下拉框,选择「历史记录」。
  4. 添加第一个历史记录条件:Changed By = 用户X(直接从下拉框选或者输入名字)。
  5. 添加第二个历史记录条件:Changed Date >= @today - 7(也可以手动输入具体日期,比如2024-05-01)。
  6. 确保这两个历史条件是在同一个组里,组的逻辑是「与(AND)」——这样就表示:工作项的历史中存在**同时满足“修改者是用户X”和“修改日期在指定范围内”**的记录。

这样设置后,查询结果就完全符合你的需求了:所有用户X在指定日期后有过修改操作的工作项,不管之后有没有其他人修改,也不会包含用户X很久以前修改但近期没变动的项。

内容的提问来源于stack exchange,提问作者Cogut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:34:37