日期时间之间的差异是它们之间的秒数。这似乎只有在日期时间出现在同一小时内时才有效。
这是为什么?
mysql> update events set created_at = "2011-04-13 15:59:59", fulfilled_at ="2011-04-13 16:00:00" where id = 1;
mysql> select fulfilled_at - created_at, timediff(fulfilled_at, created_at) from events where id = 1;
+---------------------------+------------------------------------+
| fulfilled_at - created_at | timediff(fulfilled_at, created_at) |
+---------------------------+------------------------------------+
| 4041.000000 | 00:00:01 |
+---------------------------+------------------------------------+
我知道我应该使用 timediff,但我很好奇为什么我会看到这个或者它是否记录在某处。
最佳答案
MySQL 只是尽可能地将字符串转换为数字,以便它可以对它们进行数学运算。在这种情况下,它只是去除所有非数字冒号、破折号和空格。
试试这个:
SELECT (20110413155959 - 20110413160000) AS dates;
你的日期,没有所有阻止它们成为数字的东西 - 结果是 -4041
关于mysql - MySQL 中两个日期时间之间的减号运算符的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255405/