2

我跑

select timestamp('2013-10-17 19:00:45') - timestamp('2013-10-17 18:59:37');

它返回

4108.000000

为什么?这不是闰日,timestamp是正确的函数,并且减去不超过小时边界的时间。

这里的一种解决方法是使用unix_timestamp而不是timestamp. 但这仍然不能解释这里发生了什么奇怪的事情。

4

1 回答 1

3

当您减去日期时间时,它首先将它们转换为以下形式的数字:

YYYYMMDDHHMMSS.uuuuuu

所以你会看到这个结果:

mysql> select 20131017190045.000000 - 20131017185937.000000 diff;
+-------------+
| diff        |
+-------------+
| 4108.000000 |
+-------------+
于 2013-10-17T19:27:20.520 回答