MySQL NOW()和SYSDATE()有什么区别?

MySQLNOW()SYSDATE()函数返回当前时间戳值。但是它们两者的输出都取决于执行时间。这在它们之间造成了很大的差异。

NOW()函数返回一个稳定时间,该时间指示特定语句开始执行的时间。相反,SYSDATE()函数返回执行语句的准确时间。以下示例将显示这些功能之间的区别-

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)

上面的查询显示该NOW()函数返回它开始执行的时间,因为即使在系统睡眠5秒钟后,它也会返回相同的值。

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)

相比之下,上述查询表明该SYSDATE()函数返回执行时间,因为在系统睡眠5秒钟后,该函数返回的值实际上增加了5秒钟。

猜你喜欢