程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中SYSDATE()和NOW()的區別

MySQL中SYSDATE()和NOW()的區別

編輯:MySQL綜合教程


MySQL中SYSDATE()和NOW()的區別   MySQL中有5個函數需要計算當前時間的值:   NOW.返回時間,格式如:2012-09-23 06:48:28 CURDATE,返回時間的日期,格式如:2012-09-23 CURTIME,返回時間,格式如:06:48:28 UNIX_TIMESTAMP,返回時間整數戳,如:1348408108 SYSDATE,返回時間,格式和time()函數返回時間一樣,但是有區別。 除了本身定義所返回的區別以外,另一個區別是:前四個函數都是返回基於語句的開始執行時間,而SYSDATE返回time的值。 通過比較,可以發現這兩個函數的區別:   www.2cto.com   NOW()執行如下:   [sql]  mysql> select now(),sleep(2),now();   +---------------------+----------+---------------------+   | now()               | sleep(2) | now()               |   +---------------------+----------+---------------------+   | 2012-09-23 06:54:29 |        0 | 2012-09-23 06:54:29 |    +---------------------+----------+---------------------+   1 row in set (2.00 sec)   其返回的兩個值是一樣的,因為都是表示語句開始執行的時間。   www.2cto.com   SYSDATE執行如下: [sql]  mysql> select sysdate(),sleep(2),sysdate();   +---------------------+----------+---------------------+   | sysdate()           | sleep(2) | sysdate()           |   +---------------------+----------+---------------------+   | 2012-09-23 06:55:00 |        0 | 2012-09-23 06:55:02 |    +---------------------+----------+---------------------+   1 row in set (2.01 sec)   也正因為有這個區別,我們一般在執行語句的時候,都是用NOW(),因為SYSDATE獲取當時實時的時間,這有可能導致主庫和從庫是執行的返回值是不一樣的,導致主從數據不一致。   www.2cto.com   其上其它函數執行如下:   [sql]  mysql> select now(),sysdate(),curdate(),curtime(),unix_timestamp()\G;   *************************** 1. row ***************************              now(): 2012-09-23 07:00:05          sysdate(): 2012-09-23 07:00:05          curdate(): 2012-09-23          curtime(): 07:00:05   unix_timestamp(): 1348408805   1 row in set (0.00 sec)  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved