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