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

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

MySQL的NOW()和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秒钟。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程