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

Cách MySQL xử lý khi sử dụng INTERVAL đơn vị thời gian với hàm CURDATE()

Như chúng ta biết, hàm CURDATE() chỉ trả về phần ngày, do đó việc sử dụng INTERVAL với đơn vị thời gian (giờ, phút, giây) cùng CURDATE() có thể gây nhầm lẫn. MySQL luôn biểu diễn ngày hiện tại với thành phần thời gian là '00:00:00'. Khi thực hiện phép toán thời gian với INTERVAL đơn vị thời gian trên CURDATE(), MySQL sẽ lấy thời gian mặc định này vào tính toán. Các ví dụ sau sẽ làm rõ điều này:

mysql> SELECT CURDATE() + INTERVAL 0 HOUR;
+-----------------------------+
| curdate() + interval 0 hour |
+-----------------------------+
| 2017-10-28 00:00:00         |
+-----------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + INTERVAL 1 HOUR;
+-----------------------------+
| curdate() + interval 1 hour |
+-----------------------------+
| 2017-10-28 01:00:00         |
+-----------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + INTERVAL 2 HOUR;
+-----------------------------+
| curdate() + interval 2 hour |
+-----------------------------+
| 2017-10-28 02:00:00         |
+-----------------------------+
1 row in set (0.00 sec)

Kết quả cho thấy CURDATE() được xử lý như 2017-10-28 00:00:00 khi cộng với INTERVAL giờ.