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

UPDATEを実行する場合…datetime=NOW();更新されたすべての行は、mysqlで同じ日付/時刻になりますか?


now()関数は、ステートメントの実行が開始された時刻を示す定数時間を返します。 sysdate()関数は、MySQL5.0.13からステートメントを実行したのとまったく同じ日時を返します。

トリガーまたはストアドプロシージャでnow()を使用して日時を更新する場合、now()メソッドは、トリガーおよびストアドプロシージャの実行を開始する時刻を返します。

これがnow()による更新のデモです。まず、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table NowDemo
-> (
-> DueDateTime datetime
-> );
Query OK, 0 rows affected (0.51 sec)

挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです-

mysql> insert into NowDemo values('2018-12-19');
Query OK, 1 row affected (0.15 sec)

mysql> insert into NowDemo values('2018-11-10');
Query OK, 1 row affected (0.20 sec)

mysql> insert into NowDemo values('2017-11-21');
Query OK, 1 row affected (0.09 sec)

selectステートメントを使用して、テーブルのすべてのレコードを確認します。クエリは次のとおりです-

mysql> select *from NowDemo;

出力

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-19 00:00:00 |
| 2018-11-10 00:00:00 |
| 2017-11-21 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

これは、すべての値を更新するnow()で日時列を更新するためのクエリです。

ケース1-now()の使用

クエリは次のとおりです-

mysql> update NowDemo set DueDateTime = now();
Query OK, 3 rows affected (0.12 sec)
Rows matched: 3 Changed: 3 Warnings: 0

selectコマンドを使用して更新された値を確認します。クエリは次のとおりです-

mysql> select *from NowDemo;

以下は、すべての行が同じ日時になったことを示す出力です-

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-20 16:10:00 |
| 2018-12-20 16:10:00 |
| 2018-12-20 16:10:00 |
+---------------------+
3 rows in set (0.00 sec)
ケース2-sysdate()の使用

クエリは次のとおりです-

mysql> update NowDemo set DueDateTime = sysdate();
Query OK, 3 rows affected (0.43 sec)
Rows matched: 3 Changed: 3 Warnings: 0

selectステートメントを使用して、テーブルから更新された値を確認します。クエリは次のとおりです-

mysql> select *from NowDemo;

以下は、すべての行が同じ日時になったことを示す出力です-

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-20 16:10:35 |
| 2018-12-20 16:10:35 |
| 2018-12-20 16:10:35 |
+---------------------+
3 rows in set (0.00 sec)

  1. MySQLで異なるIDを持つ同じテーブルから共通の値を持つ行を取得します

    このために、GROUPBYHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1467    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1467 value

  2. MySQLで同時に複数のデータを入力しますか?

    以下は構文です- insert into yourTableName values(yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), . . . N テーブルを作成しましょう- mysql> create table demo56 −> ( −> id int, −> first_name varchar(20), −&