SYSDATE 与 NOW 比较
mysql> SELECT SYSDATE(), NOW();
+---------------------+---------------------+
| SYSDATE() | NOW() |
+---------------------+---------------------+
| 2020-07-02 16:03:41 | 2020-07-02 16:03:41 |
+---------------------+---------------------+
1 row in set (0.06 sec)
似乎SYSDATE()和NOW()函数都返回一个相同的值,它是执行语句时当前日期和时间。然而,SYSDATE()函数实际上返回执行时的时间,而NOW()函数返回一个常量时间,该语句开始执行。
mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW() | SLEEP(2) | NOW() |
+---------------------+----------+---------------------+
| 2020-07-02 16:05:36 | 0 | 2020-07-02 16:05:36 |
+---------------------+----------+---------------------+
1 row in set (2.09 sec)
在这个例子中,我们使用SLEEP()函数暂停查询2秒。 在同一个语句中,NOW()函数总是返回一个常量,它是语句开始的时间。
我们将NOW()函数更改为SYSDATE()函数:
mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE() | SLEEP(2) | SYSDATE() |
+---------------------+----------+---------------------+
| 2020-07-02 16:06:00 | 0 | 2020-07-02 16:06:02 |
+---------------------+----------+---------------------+
1 row in set (2.10 sec)