Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Toán tử số học trên chuỗi ngày tháng trong MySQL cho kết quả gì?

Khi ngày được biểu diễn dưới dạng chuỗi (string), MySQL cố gắng trích xuất phần số đầu tiên để thực hiện phép toán, dẫn đến kết quả khó dự đoán và thường vô nghĩa.

Ví dụ

mysql> SELECT '2017-10-17' + 20;
+-------------------+
| '2017-10-17' + 20 |
+-------------------+
| 2037              |
+-------------------+
-- MySQL lấy 2017 (phần đầu) + 20 = 2037

mysql> SELECT '2017-10-25' - 17;
+-------------------+
| '2017-10-25' - 17 |
+-------------------+
| 2000              |
+-------------------+
-- 2017 - 17 = 2000

mysql> SELECT '2017-10-17' * 2;
+-------------------+
| '2017-10-17' * 2  |
+-------------------+
| 4034              |
+-------------------+
-- 2017 * 2 = 4034

mysql> SELECT '2017-05-25' / 5;
+----------------+
| '2017-05-25'/5 |
+----------------+
| 403.4          |
+----------------+
-- 2017 / 5 = 403.4

Mỗi truy vấn đều sinh ra Warning (truncated/incorrect value). Không nên dùng toán tử số học trên chuỗi ngày.