//mysql中now,curdate,curtime,sysdate区别
1.now 返回的时间,格式如下:2013-01-17 10:57:13
mysql> select now(),sleep(5),now();
+---------------------+----------+---------------------+ | now() | sleep(5) | now() | +---------------------+----------+---------------------+ | 2013-01-17 10:57:13 | 0 | 2013-01-17 10:57:13 | +---------------------+----------+---------------------+ 1 row in set (5.01 sec) 其返回的两个值是一样的,因为都是表示语句开始执行的时间。2. curdate,返回时间的日期,格式如下:2013-01-17
mysql> select curdate(),sleep(5),curdate();
+------------+----------+------------+ | curdate() | sleep(5) | curdate() | +------------+----------+------------+ | 2013-01-17 | 0 | 2013-01-17 | +------------+----------+------------+ 1 row in set (5.00 sec)3.curtime, 返回时间,格式如下:12:49:26
mysql> select curtime(),sleep(5),curtime();
+-----------+----------+-----------+ | curtime() | sleep(5) | curtime() | +-----------+----------+-----------+ | 12:49:26 | 0 | 12:49:26 | +-----------+----------+-----------+ 其返回的两个值是一样的,因为都是表示语句开始执行的时间。4.sysdate 返回时间,格式和time()函数返回时间一样,但是有区别。格式:2013-01-17 13:02:40
mysql> select sysdate(),sleep(5),sysdate(); +---------------------+----------+---------------------+ | sysdate() | sleep(5) | sysdate() | +---------------------+----------+---------------------+ | 2013-01-17 13:02:40 | 0 | 2013-01-17 13:02:45 | +---------------------+----------+---------------------+其返回的两个值是不一样的,因为sysdate是查看的系统时间,时时的系统时间。 也正因为有这个区别,我们一般在执行语句的时候,都是用now(),因为sysdate()获取当时 实时的时间,这有可能导致主库和从库执行时返回值不一样,导致主从数据库不一致。
区别:除了本身定义所返回的区别以为,另外一个区别是:now(),curtime(),curdate() 都是返回基于语句的开始执行时间,而sysdate()返回time的值。
其它函数格式显示:
mysql> select now(),curdate(),sysdate(),curtime()\G; *************************** 1. row *************************** now(): 2013-01-17 13:07:53 curdate(): 2013-01-17 sysdate(): 2013-01-17 13:07:53 curtime(): 13:07:53 1 row in set (0.01 sec)