MySQLでYYYY-MM-DDを「日 月名, 年」形式に変換するクエリの書き方
MySQLでは、DATE_FORMAT()関数を使うことで、保存されている日付データを任意の表示形式に変換できます。この記事では、「YYYY-MM-DD」形式(例:2018-01-21)の日付を「DD Month, YYYY」形式(例:21 January, 2018)に変換する方法を、実際のサンプルコードと実行結果をもとにわかりやすく解説します。
1. サンプルテーブルの作成
まず、日付型(DATE型)のカラムを持つテーブルを作成します。
mysql> create table DemoTable845(AdmissionDate date);
Query OK, 0 rows affected (1.10 sec)
2. テストデータの挿入
続いて、INSERT文を使って複数のレコードを挿入しましょう。
mysql> insert into DemoTable845 values('2018-01-21');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable845 values('2016-12-12');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable845 values('2019-08-05');
Query OK, 1 row affected (0.44 sec)
mysql> insert into DemoTable845 values('2019-10-15');
Query OK, 1 row affected (0.19 sec)3. 登録データの確認
SELECT文ですべてのレコードを表示して、正しく登録されているか確認します。
mysql> select *from DemoTable845;
実行結果は以下のとおりです。
+---------------+
| AdmissionDate |
+---------------+
| 2018-01-21 |
| 2016-12-12 |
| 2019-08-05 |
| 2019-10-15 |
+---------------+
4 rows in set (0.00 sec)
4. 日付形式を変換するクエリ
「YYYY-MM-DD」形式を「DD Month, YYYY」形式に変換するには、以下のようにDATE_FORMAT()関数を使用します。
mysql> select date_format(AdmissionDate,'%e %M, %Y') from DemoTable845;
実行すると、次のような結果が得られます。
+----------------------------------------+
| date_format(AdmissionDate,'%e %M, %Y') |
+----------------------------------------+
| 21 January, 2018 |
| 12 December, 2016 |
| 5 August, 2019 |
| 15 October, 2019 |
+----------------------------------------+
4 rows in set (0.00 sec)
使用したフォーマット指定子の解説
今回のクエリで使った主なフォーマット指定子は以下の3つです。
- %e … 日を表します。先頭に0が付かない形式(例:5日 → 「5」)
- %M … 月の完全な英語名を表します(例:「August」「October」)
- %Y … 4桁の西暦年を表します(例:「2019」)
なお、「05」のように日の先頭に0を付けたい場合は、%eの代わりに%dを使用してください。DATE_FORMAT()関数はSELECT句のほか、WHERE句やORDER BY句でも活用できるため、表示用の日付整形や絞り込み処理など、さまざまな場面で役立ちます。
-
VARCHARデータをMySQLの日付形式に変換する方法
VARCHAR型の日付文字列をDATE型に変換するにはMySQLでは、VARCHAR型として保存されている日付データを正式な日付形式に変換する場合、STR_TO_DATE() 関数を使用します。この関数は、文字列と書式指定子(フォーマット指定子)を組み合わせることで、任意の形式の文字列を日付値へと変換できる便利な機能です。以下、具体的な手順をサンプルとともに解説します。1. サンプルテーブルの作成まず、VARCHAR型のカラムを持つテーブルを作成します。mysql> create table DemoTable1989 ( DueDate varchar(20)
-
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文を使って、「日/月/年 時:分:秒」