Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะเกิดอะไรขึ้นหากผลลัพธ์ของฟังก์ชัน MySQL TIMEDIFF() เกินค่าช่วงของฟิลด์ TIME


อย่างที่เราทราบดีว่าช่วงของฟิลด์ TIME ใน MySQL คือ ‘-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