NOW 返回当前系统的日期和时间值

NOW() 函数用来返回当前日期和时间值,格式为 “YYYY-MM-DD HH:MM:SS” 或“YYYYMMDDHHMMSS”,具体格式根据函数用在字符串或数字语境中而定。

注意:NOW() 取的是 SQL 语句开始执行的时间,而不是语句执行过程中动态的实时时间。

示例用法

(1)将 NOW() 函数用于字符串语境,将返回格式为 “YYYY-MM-DD HH:MM:SS” 的字符串,如下:

mysql> select CONCAT('NOW() = ', NOW());
+-----------------------------+
| CONCAT('NOW() = ', NOW())   |
+-----------------------------+
| NOW() = 2022-04-26 11:57:44 |
+-----------------------------+
1 row in set (0.02 sec)

(2)将 NOW() 函数用于数字语境,将返回格式为 “YYYYMMDDHHMMSS” 数字,如下:

mysql> select NOW()+0;
+----------------+
| NOW()+0        |
+----------------+
| 20220426115844 |
+----------------+
1 row in set (0.02 sec)

(3)与 NOW() 函数相同功能的还有 SYSDATE() 函数,他也是返回当前日期和时间值。但是有一些细微的差异,NOW() 取的是语句开始执行的时间,而 SYSDATE() 取的是语句执行过程中动态的实时时间。

假如我们先查询了 NOW() 和 SYSDATE(),然后 SLEEP(休眠)了 3 秒,再查询 NOW() 和 SYSDATE(),如下:

mysql> select NOW(),SYSDATE(),SLEEP(3),NOW(),SYSDATE();
+---------------------+---------------------+----------+---------------------+---------------------+
| NOW()               | SYSDATE()           | SLEEP(3) | NOW()               | SYSDATE()           |
+---------------------+---------------------+----------+---------------------+---------------------+
| 2022-04-26 12:01:40 | 2022-04-26 12:01:40 |        0 | 2022-04-26 12:01:40 | 2022-04-26 12:01:43 |
+---------------------+---------------------+----------+---------------------+---------------------+
1 row in set (3.04 sec)

由运行结果可以看出,NOW() 函数始终获取的是 SQL 语句开始执行的时间,而 SYSDATE() 函数则是动态获取的实时时间。


关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号