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

MySQL中两个timestamp类型时间戳做减法运算的结果单位是什么?

MySQL timestamp 减法运算规则说明

现有两个字段 t0 和 t1,数据类型均为 timestamp,其中 t0 = 2021-11-18 20:25:09、t1 = 2021-11-18 20:36:41
我尝试计算 t1 - t0 的值,预期结果为约11分钟或约700秒,但实际得到的结果是1132。
想了解MySQL中两个timestamp类型时间戳使用-运算符做减法的运算规则是什么,以及计算结果的单位是什么。

核心运算规则

MySQL 中直接使用-运算符对两个timestamp类型字段做运算时,不会执行时间逻辑的差值计算,而是先将两个 timestamp 按照「YYYYMMDDHHMMSS」的格式转换为无符号整数,再执行普通的整数减法运算,最终返回的是整数运算结果,无标准时间单位。

你遇到的结果可以直接通过这个规则验证:

  • t0 = 2021-11-18 20:25:09 转换为整数为 20211118202509
  • t1 = 2021-11-18 20:36:41 转换为整数为 20211118203641
  • 整数减法结果:20211118203641 - 20211118202509 = 1132,和你实际得到的结果完全一致。

正确计算时间差的方法

如果需要获取两个时间的实际差值,使用官方提供的时间运算函数即可:

  • 计算指定单位的差值,使用TIMESTAMPDIFF(单位, 开始时间, 结束时间),支持秒、分钟、小时、天等粒度:
    示例:计算秒级差值执行 SELECT TIMESTAMPDIFF(SECOND, t0, t1);,你的场景会返回692,也就是11分32秒,符合你的预期。
    单位可替换为MINUTE/HOUR/DAY/WEEK等获取对应粒度的差值。
  • 直接获取时分秒格式的差值,使用TIMEDIFF(结束时间, 开始时间):
    示例:执行SELECT TIMEDIFF(t1, t0);,你的场景会返回00:11:32。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:24:05