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