jenkins 没有传统意义上的数据库可以改时间。​ 它的构建历史是文件系统存储的不是 MySQL/Oracle。构建时间存在这里$JENKINS_HOME/jobs/项目名/builds/构建编号/build.xml所以改数据库这条路走不通直接改build.xml才是正解。但是千万不要手动改build.xml后再启动 Jenkins容易把 XML 改坏导致整个 job 无法加载。官方推荐的做法是通过Jenkins Script Console​ 用 Groovy 脚本改它会在内存里改完再安全落盘。操作步骤登录 Jenkins → 右上角进入Manage Jenkins → Script Console第一步查看所有历史构建只读绝对安全把tc-xx-xx换成你的真实项目名复制粘贴到 Script Console 运行def jobName tc-xx-xx-xx def job Jenkins.instance.getItemByFullName(jobName) if (job null) { println ❌ 找不到项目$jobName return } println 项目 $jobName 所有构建 job.builds.each { build - println #${build.number} | 时间: ${build.timestamp} | result: ${build.result} } println 共 ${job.builds.size()} 个构建 运行结果会像这样假设你的构建编号 项目 tc-xx-xx-xx 所有构建 #23 | 时间: Thu May 8 15:42:20 CST 2026 | result: SUCCESS #22 | 时间: Wed Apr 16 10:33:01 CST 2026 | result: SUCCESS #21 | 时间: Tue Apr 15 08:55:44 CST 2026 | result: SUCCESS ... 共 23 个构建 第二步修改时间等第一步确认后再执行下面这个脚本专门修改某一个构建的时间:import java.util.Calendar def jobName tc-xx-xx-xx def targetBuildNumber 23 def job Jenkins.instance.getItemByFullName(jobName) if (job null) { println ❌ 找不到项目; return } def build job.getBuildByNumber(targetBuildNumber) if (build null) { println ❌ 找不到构建 #${targetBuildNumber}; return } // 打印当前时间通过 .time 获取 Date 对象 println 修改前: ${build.timestamp.time} // 创建目标时间的 Calendar 实例上海时区 def targetCal Calendar.getInstance(TimeZone.getTimeZone(Asia/Shanghai)) targetCal.set(2026, Calendar.APRIL, 27, 17, 30, 0) // 2026-04-27 17:30:00 targetCal.set(Calendar.MILLISECOND, 0) // 将 long 毫秒值赋给 build.timestamp build.timestamp targetCal.timeInMillis build.save() // 重新获取构建对象确保读取最新值 build job.getBuildByNumber(targetBuildNumber) println ✅ 修改后: ${build.timestamp.time}运行后你应该看到类似修改前: Wed Jul 29 15:28:23 CST 2026 ✅ 修改后: Mon Apr 27 17:30:00 CST 2026我的是Version 2.541.1。其他版本未测试。