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

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

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

示例用法

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

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

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

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

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

假如我们先查询了 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
公众号