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

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()関数なども活用できます。

  1. 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

  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