假设有两个 timestamp 类型的字段,值分别是:

  • 字段a:2023-12-12 23:59:54
  • 字段b:2023-12-13 00:01:04

这两个字段相差70秒,但是执行 SELECT b - a FROM table 这样的 SQL 语句,得到的结果却是764150。

原因是,timestamp 类型字段直接相减时,mysql 先把字段转换成数值表示,然后再相减,即实际是数值 20231213000104 和 20231212235954 相减,所以得到的结果跟预期相差很大。

正确的方法,应该是使用 TIMESTAMPDIFF 函数来操作 SELECT TIMESTAMPDIFF(SECOND, a, b) FROM table,这样才能得到两个字段相差的秒数。

TIMESTAMPDIFF 函数的具体用法,这里不再阐述,请自行搜索。