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

MySQL EXTRACT()関数にのみ日付値を提供して時間値を抽出しようとすると、何が出力されますか?


日付から時間の値を抽出しようとすると、EXTRACT()関数は、以下の例に示すように、警告付きの出力0を返します-

mysql> Select EXTRACT(Hour from '2017-10-20');

+---------------------------------+
| EXTRACT(Hour from '2017-10-20') |
+---------------------------------+
| 0                               |
+---------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> Show Warnings;

+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '2017-10-20' |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)

これで、日付から分の値を抽出しようとすると、EXTRACT()関数は、以下の例に示すように、警告付きの出力として日付からの世紀の値を返します-

mysql> Select EXTRACT(Minute from '2017-10-20');
+-----------------------------------+
| EXTRACT(Minute from '2017-10-20') |
+-----------------------------------+
| 20                                |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> Show Warnings;
+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '2017-10-20' |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)

ここで、日付から秒の値を抽出しようとすると、EXTRACT()関数は、次の例に示すように、警告付きの出力として年の値を返します-

mysql> Select Extract(Second from '2017-10-20');

+-----------------------------------+
| Extract(Second from '2017-10-20') |
+-----------------------------------+
| 17                                |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> Show Warnings;

+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '2017-10-20' |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)

現在の日付から時刻の値(時、分、秒)を取得しようとすると、同様の結果が得られます。つまり、日付の場所でCurdate()を使用します。


  1. MySQLに挿入しながら、日付と時刻の値を更新します

    ここでは、INSERTクエリを使用しながら日時を挿入して更新する例を示します。 まずテーブルを作成しましょう- mysql> create table DemoTable816 (DueDate datetime); Query OK, 0 rows affected (0.45 sec) 挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。 INSERT-を実行するときに日付に追加するクエリ(分/時間/日/月/年)は次のとおりです。 mysql> insert into DemoTable816 values(date_add(now(),interval 3

  2. 日付全体ではなく日のみを抽出するMySQLクエリ

    日付全体ではなく日のみを抽出するには、MySQLのDAYOFMONTH()関数を使用する必要があります。 まずテーブルを作成しましょう- mysql> create table DemoTable747 (DueDate datetime); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable747 values('2019-01-31') ; Query OK, 1 row affected (0.17 sec)