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

SQL如何对两个不同字段的时间值相加并编写UPDATE语句

时间字段求和更新实现方法

现有表中两个时间类字段:

  • expected_start_time:存储预期开始时间,示例值为2022-07-14 04:00:00 UTC
  • expected_runtime:存储预期运行时长,示例值为0000-00-00 00:10:00 UTC
    需求为直接引用两个字段完成时间值求和,通过UPDATE语句完成计算写入,不需要硬编码固定时间值,最终求和结果示例为2022-07-14 04:10:00 UTC。

不同数据库的实现语句

MySQL / MariaDB

使用内置ADDTIME()函数直接做时间偏移相加即可,假设计算结果写入同表的expected_end_time字段(替换为你实际使用的目标字段、表名即可):

UPDATE 你的业务表名
SET expected_end_time = ADDTIME(expected_start_time, expected_runtime);

该写法自动处理时间进位:如果运行时长累计超过24小时,会自动累加日期部分,不需要额外写进位逻辑。

PostgreSQL

PostgreSQL中timestamp类型可以直接和时间间隔类型做加法,遇到类型不兼容时显式转换runtime为interval即可:

-- 隐式转换写法(兼容大部分场景)
UPDATE 你的业务表名
SET expected_end_time = expected_start_time + expected_runtime;

-- 显式类型转换写法(隐式转换报错时使用)
UPDATE 你的业务表名
SET expected_end_time = expected_start_time + CAST(expected_runtime AS interval);

校验要点

  • 运算前确认两个字段时区配置一致,避免UTC、本地时区混用导致结果出现时间偏移
  • 不需要在语句中写死任何固定时间值,所有计算逻辑完全依赖表中存储的字段值
  • 可以先执行预览语句核对结果,确认符合预期后再执行UPDATE操作,比如MySQL场景可先执行:
    SELECT ADDTIME(expected_start_time, expected_runtime) FROM 你的业务表名 LIMIT 1;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:57:11