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

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句でも活用できるため、表示用の日付整形や絞り込み処理など、さまざまな場面で役立ちます。

  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文を使って、「日/月/年 時:分:秒」