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

更新於:30-1 月-2020

2K+ 閱讀量

開啟你的 職業生涯

完成課程,獲得證書

開始
廣告