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