I run
select timestamp('2013-10-17 19:00:45') - timestamp('2013-10-17 18:59:37');
它返回
4108.000000
为什么? 这不是闰日,timestamp
是正确的函数,减法适用于不超过一小时界限的时间。
这里的一个解决方法是使用 unix_timestamp
而不是 timestamp
.但这仍然不能解释这里发生了什么奇怪的事情。
当你减去日期时间时,它首先将它们转换为以下形式的数字:
YYYYMMDDHHMMSS.uuuuuu
所以你看到这个结果:
mysql> select 20131017190045.000000 - 20131017185937.000000 diff;
+-------------+
| diff |
+-------------+
| 4108.000000 |
+-------------+