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

MySQLでレコードを挿入しながら日付をフォーマットする方法(DATE_FORMAT活用)

MySQLでは、INSERT文の中でDATE_FORMAT()関数を使うことで、レコードを挿入する際に日付を任意の形式に整形できます。本記事では、実際にテーブルを作成し、日付をフォーマットしながらデータを挿入する手順を具体的なSQL例とともに解説します。

1. テーブルの作成

まず、フォーマット済みの日付文字列を格納するためのテーブルを作成します。ここでは、VARCHAR型のカラム「ShippingDate」を持つシンプルなテーブルを用意します。

mysql> create table DemoTable2012
    -> (
    -> ShippingDate varchar(20)
    -> );
Query OK, 0 rows affected (0.48 sec)

2. DATE_FORMAT()を使ってレコードを挿入

次に、INSERT文の中でDATE_FORMAT()を使用して、日付を「日.月.年(%d.%m.%Y)」の形式に変換しながらデータを挿入します。現在の日付を取得するにはCURDATE()NOW()を、特定の日付を挿入したい場合は日付文字列を直接指定します。

mysql> insert into DemoTable2012 values(date_format(curdate(),'%d.%m.%Y'));
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable2012 values(date_format(now(),'%d.%m.%Y'));
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable2012 values(date_format('2014-01-21','%d.%m.%Y'));
Query OK, 1 row affected (0.17 sec)

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

  • %d:日(01〜31)
  • %m:月(01〜12)
  • %Y:4桁の年(例:2019)

このように書式指定子を組み合わせることで、「21.12.2019」のようなヨーロッパ式の表示形式など、自由に日付フォーマットを指定できます。

3. 挿入結果の確認

SELECT文ですべてのレコードを表示して、結果を確認しましょう。

mysql> select *from DemoTable2012;

実行すると、次のような出力が得られます。

+--------------+
| ShippingDate |
+--------------+
| 21.12.2019   |
| 21.12.2019   |
| 21.01.2014   |
+--------------+
3 rows in set (0.00 sec)

まとめ

INSERT文内でDATE_FORMAT()を使用すれば、データベースに保存する段階で日付を希望の形式に整形できます。CURDATE()NOW()・具体的な日付文字列のいずれにも対応できるため、出荷日や登録日など、表示形式が決まっているデータを扱う際に非常に便利です。なお、フォーマット後は文字列として保存されるため、格納先カラムはVARCHAR型などの文字列型を選択する点に注意してください。

  1. VARCHARデータをMySQLの日付形式に変換する方法

    VARCHAR型の日付文字列をDATE型に変換するにはMySQLでは、VARCHAR型として保存されている日付データを正式な日付形式に変換する場合、STR_TO_DATE() 関数を使用します。この関数は、文字列と書式指定子(フォーマット指定子)を組み合わせることで、任意の形式の文字列を日付値へと変換できる便利な機能です。以下、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、VARCHAR型のカラムを持つテーブルを作成します。mysql> create table DemoTable1989 ( DueDate varchar(20)

  2. MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説

    MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」