如果 MySQL TIMEDIFF() 函数的输出超过 TIME 字段的范围值会发生什么?


我们知道 MySQL 中 TIME 字段的范围是 ‘-838:59:59’‘838:59:59’。现在,如果 TIMEDIFF() 函数的输出超过此范围,则 MySQL 将返回 ‘-838:59:59’‘838:59:59’,具体取决于参数的值。

示例

mysql> Select TIMEDIFF('2017-09-01 03:05:45','2017-10-22 03:05:45')AS 'Out of Range TIME Difference';
+------------------------------+
| Out of Range TIME Difference |
+------------------------------+
| -838:59:59                   |
+------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> Select TIMEDIFF('2017-10-22 04:05:45','2017-09-01 03:05:45')AS 'Out of Range TIME Difference';
+------------------------------+
| Out of Range TIME Difference |
+------------------------------+
| 838:59:59                    |
+------------------------------+
1 row in set, 1 warning (0.01 sec)

上面的查询表明,如果总差值超出范围,MySQL 将返回 TIME 字段范围的最大值或最小值。

更新于: 2019年7月30日

147 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告