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)

上述查询表明,即使在系统休眠 5 秒后,NOW() 函数也会返回它开始执行时的时间,因为它仍然返回相同的值。

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 秒。

更新日期:30-1 月 -2020

2K+ 次浏览

开启您的 职业生涯

完成课程并获得认证

开始
广告
© . All rights reserved.