mysql中now,curdate,curtime,sysdate區別

//mysql中now,curdate,curtime,sysdate區別mysql

1.now 返回的時間,格式以下:2013-01-17 10:57:13sql

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)spa

3.curtime, 返回時間,格式以下:12:49:26date

mysql> select curtime(),sleep(5),curtime();
+-----------+----------+-----------+
| curtime() | sleep(5) | curtime() |
+-----------+----------+-----------+
| 12:49:26  |        0 | 12:49:26  |
+-----------+----------+-----------+
其返回的兩個值是同樣的,由於都是表示語句開始執行的時間。select

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 |
+---------------------+----------+---------------------+im

其返回的兩個值是不同的,由於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)

相關文章
相關標籤/搜索