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

MySQLで異なる日付形式の日付レコードを同じテーブルに挿入する方法

MySQLでは、INSERT INTO SELECT文とDATE_FORMAT()関数を組み合わせることで、異なる日付形式に変換したデータを同じテーブルに挿入できます。この記事では、実際の手順をサンプルコードとともに解説します。

1. テーブルを作成する

まず、datetime型のカラムとtext型のカラムを持つテーブルを作成します。

mysql> create table DemoTable
    -> (
    -> DateOfJoining datetime,
    -> JoiningDate text
    -> );
Query OK, 0 rows affected (0.79 sec)

2. レコードを挿入する

次に、INSERT文を使ってdatetime型カラム「DateOfJoining」に日付データを登録します。

mysql> insert into DemoTable(DateOfJoining) values('2019-10-26 13:52:10');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(DateOfJoining) values('2018-12-31 15:20:40');
Query OK, 1 row affected (0.16 sec)

3. テーブルの内容を確認する

SELECT文で登録済みの全レコードを表示してみましょう。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+---------------------+-------------+
| DateOfJoining | JoiningDate |
+---------------------+-------------+
| 2019-10-26 13:52:10 | NULL |
| 2018-12-31 15:20:40 | NULL |
+---------------------+-------------+
2 rows in set (0.00 sec)

4. 異なる日付形式で同じテーブルに挿入する

ここからが本題です。INSERT INTO SELECT文の中でDATE_FORMAT()関数を使うことで、「DateOfJoining」カラムの値を読み取りながら、指定した形式(%W %e, %b %Y @ %r)に変換して「JoiningDate」カラムに挿入します。

mysql> insert into DemoTable(JoiningDate) select date_format(DateOfJoining , '%W %e, %b %Y @ %r') from DemoTable;
Query OK, 2 rows affected (0.13 sec)
Records: 2 Duplicates: 0 Warnings: 0

使用した書式指定子の意味

  • %W:曜日の完全な名前(例:Saturday)
  • %e:日(先頭のゼロなし、例:26)
  • %b:月の省略名(例:Oct)
  • %Y:4桁の年(例:2019)
  • %r:12時間制の時刻(例:01:52:10 PM)

5. 最終結果を確認する

再度SELECT文を実行して、テーブル全体を確認します。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+---------------------+-------------------------------------+
| DateOfJoining | JoiningDate |
+---------------------+-------------------------------------+
| 2019-10-26 13:52:10 | NULL |
| 2018-12-31 15:20:40 | NULL |
| NULL | Saturday 26, Oct 2019 @ 01:52:10 PM |
| NULL | Monday 31, Dec 2018 @ 03:20:40 PM |
+---------------------+-------------------------------------+
4 rows in set (0.00 sec)

このように、元のdatetime型データはそのまま残しつつ、「Saturday 26, Oct 2019 @ 01:52:10 PM」のような自由な形式の文字列として同じテーブルに追加できました。日付データを別フォーマットで表示・保存したい場合に非常に便利なテクニックなので、ぜひ活用してください。

  1. Javaを使ってMySQLテーブルにレコードを挿入する方法

    はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable(   Id int,   Name varchar(30),&

  2. MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方

    MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ