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秒増加した値を返すためです。
-
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; これにより、次の出力が生成されます- +-----
-
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