天天看點

mysql中 now() sysdate() curdate() 的差別

-- 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 |
+---------------------+----------+---------------------+
兩個值相同,表示語句開始執行的時間。

-- curdate() 傳回目前日期,格式如下:2013-01-17
mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2013-01-17 |
+------------+

-- curtime(), 傳回目前時間,格式如下:12:49:26
mysql> select curtime(), sleep(5), curtime();
+-----------+----------+-----------+
| curtime() | sleep(5) | curtime() |
+-----------+----------+-----------+
| 12:49:26  |        0 | 12:49:26  |
+-----------+----------+-----------+
兩個值相同,都表示語句開始執行的時間。

-- sysdate() 傳回目前日期和時間,格式: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表示實時的系統時間。
sysdate() 和 now()的差別,一般在執行SQL語句時,都是用now();
因為使用sysdate()時,有可能導緻主庫和從庫執行時傳回值不一樣,導緻主從資料庫不一緻。

其它函數格式顯示:
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
           

轉載自 http://www.cnblogs.com/hllnj2008/p/5192849.html

繼續閱讀