MySQLで日時(DATETIME)を変換して月名を取得する方法
MySQLで日時(DATETIME)から月の名前だけを取得したい場合は、DATE_FORMAT()関数を使用します。月名のみを取得するための基本構文は以下の通りです。
select date_format(yourColumnName,'%M %Y') from yourTableName;
%Mは月の完全な英語名(例:October)、%Yは4桁の年を表す書式指定子です。この2つを組み合わせることで、「October 2019」のような形式で結果を取得できます。
サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable1619
-> (
-> ArrivalTime datetime
-> );
Query OK, 0 rows affected (0.45 sec)
レコードの挿入
insertコマンドを使って、いくつかのレコードをテーブルに挿入します。
mysql> insert into DemoTable1619 values(now());
Query OK, 1 row affected (0.40 sec)
mysql> insert into DemoTable1619 values(curdate());
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1619 values('2019-12-31');
Query OK, 1 row affected (0.17 sec)
登録データの確認
select文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1619;
実行すると、以下のような出力が得られます。
+---------------------+
| ArrivalTime |
+---------------------+
| 2019-10-20 15:02:12 |
| 2019-10-20 00:00:00 |
| 2019-12-31 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)
月名を取得するクエリ
MySQLでdatetime型の値を変換して月名を取得するには、次のクエリを実行します。
mysql> select date_format(ArrivalTime,'%M %Y') from DemoTable1619;
実行結果は以下の通りです。
+----------------------------------+
| date_format(ArrivalTime,'%M %Y') |
+----------------------------------+
| October 2019 |
| October 2019 |
| December 2019 |
+----------------------------------+
3 rows in set (0.00 sec)
まとめ
DATE_FORMAT()関数と書式指定子「%M」を組み合わせることで、datetime型の値から簡単に月名を抽出できます。年も一緒に表示したい場合は「%M %Y」のように指定すると便利です。なお、日本語の月名が必要な場合や短縮形(Jan、Febなど)を取得したい場合は、「%b」指定子やMONTHNAME()関数なども活用できます。
-
MySQLでchar型カラムをdatetime型に変換する方法をわかりやすく解説
MySQLでは、char型として保存された日付文字列をdatetime形式に変換したいケースがあります。本記事では、REPLACE関数とSTR_TO_DATE関数を組み合わせて、「12/31/2017 10:50」のような米国式の日付文字列を「2017-12-31 10:50:00」というdatetime形式へ変換する手順を、実際のSQLと実行結果付きで解説します。サンプルテーブルの作成まず、テーブルを作成します。ここでは配送日(ShippingDate)をあえてchar型として宣言しています。mysql> create table DemoTable1472 &n
-
【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