MySQL中 now() sysdate() curdate() 的区别

Reading time ~1 minute

1. now() 返回当前日期和时间,格式如下:2018-06-12 13:02:21

mysql> select now(),sleep(5),now();
+---------------------+----------+---------------------+
| now()               | sleep(5) | now()               |
+---------------------+----------+---------------------+
| 2018-06-12 13:02:21 | 0        | 2018-06-12 13:02:21 |
+---------------------+----------+---------------------+

两个值相同,表示语句开始执行的时间。

2. curdate() 返回当前日期,格式如下:2018-06-12

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2018-06-12 |
+------------+

3. curtime(), 返回当前时间,格式如下:13:05:28

mysql> select curtime(),sleep(5),curtime();
+-----------+----------+-----------+
| curtime() | sleep(5) | curtime() |
+-----------+----------+-----------+
| 13:05:28  | 0        | 13:05:28  |
+-----------+----------+-----------+

两个值相同,都表示语句开始执行的时间。

4. sysdate() 返回当前日期和时间,格式:2018-06-12 13:07:06

mysql> select sysdate(),sleep(5),sysdate();
+---------------------+----------+---------------------+
| sysdate()           | sleep(5) | sysdate()           |
+---------------------+----------+---------------------+
| 2018-06-12 13:07:06 | 0        | 2018-06-12 13:07:11 |
+---------------------+----------+---------------------+

两个值不同,sysdate表示实时的系统时间。

sysdate()now() 的区别,一般在执行SQL语句时,都是用 now();

因为使用sysdate()时,有可能导致主库和从库执行时返回值不一样,导致主从数据库不一致。

mysql> select now(),curdate(),sysdate(),curtime();
+---------------------+------------+---------------------+-----------+
| now()               | curdate()  | sysdate()           | curtime() |
+---------------------+------------+---------------------+-----------+
| 2018-06-12 13:25:12 | 2018-06-12 | 2018-06-12 13:25:12 | 13:25:12  |
+---------------------+------------+---------------------+-----------+ 

转载请注明出处:
文章地址:MySQL中 now() sysdate() curdate() 的区别
文章作者:凌风
原始连接:https://lingfeng.me/blog/mysql/mysql-data-fun/
许可协议:转载请注明原文链接及作者。

HomeBrew 安装及常用命令

HomeBrew 是 Mac OSX 上的软件包管理工具,能在 Mac 中方便的安装软件或者卸载软件, 使用命令,非常方便。 Continue reading