mysql中,now()函数和sysdate()函数有什么区别?

问题描述:

  今天在看mysql的时间函数,now()和sysdate(),记录下两者之间有什么不同.

实验过程:

1.执行以下的两个语句:

mysql> select now(),sleep(2),now();
+---------------------+----------+---------------------+
| now()               | sleep(2) | now()               |
+---------------------+----------+---------------------+
| 2018-06-01 15:17:18 |        0 | 2018-06-01 15:17:18 |
+---------------------+----------+---------------------+
1 row in set (2.00 sec)

mysql> select sysdate(),sleep(2),sysdate();
+---------------------+----------+---------------------+
| sysdate()           | sleep(2) | sysdate()           |
+---------------------+----------+---------------------+
| 2018-06-01 15:17:34 |        0 | 2018-06-01 15:17:36 |
+---------------------+----------+---------------------+
1 row in set (2.00 sec)

备注:通过以上的查询,看出now()在进行休眠2秒之后,再次执行还是和开始的时间是一样的,对于sysdate函数,在同一个语句中,执行了两次,第二次就是休眠2秒之后的真正的时间.

2.多次调用验证

mysql> select now(),sleep(2),now(),sleep(1),now(),now();
+---------------------+----------+---------------------+----------+---------------------+---------------------+
| now()               | sleep(2) | now()               | sleep(1) | now()               | now()               |
+---------------------+----------+---------------------+----------+---------------------+---------------------+
| 2018-06-01 15:21:29 |        0 | 2018-06-01 15:21:29 |        0 | 2018-06-01 15:21:29 | 2018-06-01 15:21:29 |
+---------------------+----------+---------------------+----------+---------------------+---------------------+
1 row in set (3.00 sec)

mysql> select sysdate(),sleep(2),sysdate(),sleep(1),sysdate(),sysdate();
+---------------------+----------+---------------------+----------+---------------------+---------------------+
| sysdate()           | sleep(2) | sysdate()           | sleep(1) | sysdate()           | sysdate()           |
+---------------------+----------+---------------------+----------+---------------------+---------------------+
| 2018-06-01 15:21:52 |        0 | 2018-06-01 15:21:54 |        0 | 2018-06-01 15:21:55 | 2018-06-01 15:21:55 |
+---------------------+----------+---------------------+----------+---------------------+---------------------+
1 row in set (3.00 sec)

 

小结:

  now()返回的时间是SQL语句执行的时间,无论在一次SQL语句中now()函数被执行多少次.即SQL开始执行的时间.

  sysdate()返回的时间是函数执行的时间,比如以上的一条SQL语句中执行了2次,第二次就是sysdate()执行的时间.即sysdate()执行的时间.

 

文档创建时间:2018年6月1日15:20:51

转载于:https://www.cnblogs.com/chuanzhang053/p/9121847.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值