MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL NOW()とSYSDATE()の違いは何ですか?


MySQL NOW()およびSYSDATE()関数は、現在のタイムスタンプ値を返します。ただし、両方の出力は実行時間によって異なります。これにより、両者の間に大きな違いが生まれます。

NOW()関数は、特定のステートメントの実行が開始された時刻を示す定常時刻を返します。対照的に、SYSDATE()関数は、ステートメントが実行される正確な時刻を返します。次の例は、これらの関数の違いを示しています-

mysql> Select NOW(), SLEEP(5), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(5) | NOW()               |
+---------------------+----------+---------------------+
| 2017-10-31 09:57:36 | 0        | 2017-10-31 09:57:36 |
+---------------------+----------+---------------------+
1 row in set (5.11 sec)

上記のクエリは、NOW()関数が実行を開始した時刻を返すことを示しています。これは、システムが5秒間スリープした後でも、同じ値を返すためです。

mysql> Select SYSDATE(), SLEEP(5), SYSDATE();

+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(5) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2017-10-31 09:58:13 | 0        | 2017-10-31 09:58:18 |
+---------------------+----------+---------------------+
1 row in set (5.00 sec)

これと比較して、上記のクエリは、SYSDATE()関数が実行時間を返すことを示しています。これは、システムスリープの5秒後に、実際には5秒増加した値を返すためです。


  1. MySQLのTINYINT(1)とブール値の違いは何ですか?

    TINYINT(1)とブール値の間に違いはありません。キーワードBoolまたはBooleanは内部でTINYINT(1)に変換されます。または、BoolまたはBooleanはTINYINT(1)と同義であると言えます。 まずテーブルを作成しましょう- mysql> create table DemoTable (    isMarried Boolean ); Query OK, 0 rows affected (1.77 sec) 表の説明を確認しましょう- mysql> desc DemoTable; これにより、次の出力が生成されます- +-----

  2. MySQLでは、!=NULLとISNOT NULLの違いは何ですか?

    値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970    (    Value int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa