web-dev-qa-db-ja.com

MySQLのNOW()、SYSDATE()およびCURRENT_DATE()の違い

MySQLのNOW()SYSDATE()CURRENT_DATE()の違いと実際のシナリオで使用できる場所.

テーブルにデータを挿入し、列のデータ型がTIMESTAMPであるときに、NOW()SYSDATE()Current_Date()を試してみました。

24
Ashutosh SIngh

Current_date()は日付のみを提供します。
now()は、ステートメント、手順などが開始された日時を示します。
sysdate()は、現在の日時を提供します。
次のクエリを使用して、now()1 sysdate()1の間に5秒待機した後の秒数を確認します(右にスクロールします)。

 select now()、sysdate()、current_date()、sleep(5)、now()、sysdate(); 
 
-は
を与えます-now()sysdate()current_date()sleep(5)now()1 sysdate()1 
-2014/10/10 2:50:04 AM 2014/10/10 2:50: 04 AM 6/10/2014 12:00:00 AM 0 6/10/2014 2:50:04 AM 6/10/2014 2:50:09 AM 
43
Benoit

NOW()は、ステートメントが実行を開始した時間を示す一定の時間を返します。 (ストアド関数またはトリガー内では、_NOW(_)は、関数またはトリガーステートメントが実行を開始した時刻を返します。これは、正確な時刻を返すSYSDATE()の動作とは異なります。実行します。

_mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+
_
7
Avijit batabyal

Current_dateはクライアントのタイムスタンプを返し、sysdateはサーバーのタイムスタンプを返します。サーバーとクライアントの両方が同じマシン上にある場合、両方のコマンドの結果は同じです。ただし、サーバーが米国にあり、クライアントが中国にある場合、これら2つの関数はまったく異なる結果を返します。

Thew now()については知りません、すみません:-)

3
Dax

CURRENT_DATE()は、dateのみを提供する他の多くの同様の関数の同義語です。 NOW()SYSDATE()には微妙な違いがありますが、これについて詳しく読むことができます。
MySQLの公式Webサイト ページ。

1
Islay