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() 函数则是动态获取的实时时间。

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号