如果 MySQL TIMEDIFF() 函数的输出超出了 TIME 字段的范围值,会发生什么情况?
mysqlmysqli database
我们知道 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 字段范围的最大值或最小值。