Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa MySQL NOW () và SYSDATE () là gì?

Các hàm

MySQL NOW () và SYSDATE () trả về các giá trị dấu thời gian hiện tại. Nhưng đầu ra của cả hai đều phụ thuộc vào thời gian thực hiện. Điều này tạo ra sự khác biệt lớn giữa chúng.

Hàm NOW () trả về một thời gian ổn định cho biết thời gian mà tại đó câu lệnh cụ thể bắt đầu thực thi. Ngược lại, hàm SYSDATE () trả về thời gian chính xác mà câu lệnh thực thi. Ví dụ sau sẽ cho thấy sự khác biệt giữa các chức năng này -

mysql> Select NOW(), SLEEP(5), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(5) | NOW()               |
+---------------------+----------+---------------------+
| 2017-10-31 09:57:36 | 0        | 2017-10-31 09:57:36 |
+---------------------+----------+---------------------+
1 row in set (5.11 sec)

Truy vấn trên cho thấy rằng hàm NOW () trả về thời gian mà nó bắt đầu thực thi vì ngay cả sau 5 giây hệ thống ở chế độ ngủ, nó vẫn trả về cùng một giá trị.

mysql> Select SYSDATE(), SLEEP(5), SYSDATE();

+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(5) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2017-10-31 09:58:13 | 0        | 2017-10-31 09:58:18 |
+---------------------+----------+---------------------+
1 row in set (5.00 sec)

Để so sánh, truy vấn trên cho thấy rằng hàm SYSDATE () trả về thời gian mà nó thực thi vì sau 5 giây hệ thống ngủ, nó trả về giá trị thực sự đã tăng thêm 5 giây.