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()を使用します。
-
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
-
日付全体ではなく日のみを抽出する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)