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

MySQLで月番号ではなく月名だけを出力する方法

文字列として保存された日付データから、「10」のような月番号ではなく「October」のような月名だけを取り出したい場合は、STR_TO_DATE()DATE_FORMAT()を組み合わせることで簡単に実現できます。まずはサンプル用のテーブルを作成しましょう。

mysql> create table DemoTable1320
-> (
-> MonthName varchar(20)
-> );
Query OK, 0 rows affected (0.43 sec)

レコードの挿入例

INSERTコマンドを使って、テーブルに「dd/mm/yyyy」形式の日付文字列をいくつか挿入します。

mysql> insert into DemoTable1320 values('10/10/2010');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1320 values('11/12/2018');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1320 values('12/01/2019');
Query OK, 1 row affected (0.15 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable1320;

出力結果

+------------+
| MonthName  |
+------------+
| 10/10/2010 |
| 11/12/2018 |
| 12/01/2019 |
+------------+
3 rows in set (0.00 sec)

月名を出力するクエリ

ここがポイントです。まずSTR_TO_DATE()で「%d/%m/%Y」形式の文字列を日付型に変換し、その結果をDATE_FORMAT()の「%M」(完全な月名)フォーマット指定子に渡すことで、月名を取得できます。

mysql> select date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') from DemoTable1320;

出力結果

+-----------------------------------------------------+
| date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') |
+-----------------------------------------------------+
| October                                             |
| December                                            |
| January                                             |
+-----------------------------------------------------+
3 rows in set (0.00 sec)

補足:便利なフォーマット指定子

用途に応じて、以下の指定子も活用できます。

  • %M:完全な月名(January〜December)
  • %b:省略形の月名(Jan〜Dec)
  • %m:先頭ゼロ付きの月番号(01〜12)
  • %c:先頭ゼロなしの月番号(1〜12)

このように、文字列形式で保存された日付データでも、STR_TO_DATE()で一度日付型へ変換してからDATE_FORMAT()で整形すれば、柔軟な表示形式への変更が可能です。

  1. MySQLのDATE_FORMAT関数でタイムスタンプから月番号を取得する方法

    MySQLでタイムスタンプ型のカラムから「月の番号だけ」を取り出したい場合、DATE_FORMAT() 関数を使うのが便利です。書式指定子 %m を指定することで、01〜12の形式で月番号を文字列として取得できます。この記事では、実際にテーブルを作成し、データを登録して、月番号を抽出するまでの一連の手順をサンプルコード付きで解説します。1. サンプルテーブルの作成まず、TIMESTAMP型のカラムを持つテーブルを作成します。mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK,

  2. 【MySQL】DATE_FORMAT()でタイムスタンプから月名のみを取得する方法

    MySQLでTIMESTAMPから月名のみを取得する方法 MySQLで日時データ(TIMESTAMP)から「月名」だけを取り出したい場合は、DATE_FORMAT()関数を使用します。フォーマット指定子に%Mを指定することで、「January」「December」のような完全な英語の月名を簡単に取得できます。 1. サンプルテーブルを作成する まず、TIMESTAMP型のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK, 0 rows affected