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

【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 (0.66 sec)

2. レコードを挿入する

INSERT文を使って、いくつかの日時データを登録します。

mysql> insert into DemoTable1999 values('2019-01-01 12:34:00');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1999 values('2019-12-31 10:04:00');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1999 values('2018-10-11 04:04:30');
Query OK, 1 row affected (0.14 sec)

3. テーブルの中身を確認する

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

mysql> select * from DemoTable1999;

実行結果は次のとおりです。

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-01-01 12:34:00 |
| 2019-12-31 10:04:00 |
| 2018-10-11 04:04:30 |
+---------------------+
3 rows in set (0.00 sec)

4. 月名のみを返すクエリ

それでは本題のクエリです。date_format()の第2引数に「%M」を指定し、AS句で別名「MonthName」を付けて月名を抽出します。

mysql> select date_format(ArrivalDate,'%M') as MonthName from DemoTable1999;

実行結果を見ると、各レコードから「January」「December」「October」という月名が正しく取得できていることがわかります。

+-----------+
| MonthName |
+-----------+
| January   |
| December  |
| October   |
+-----------+
3 rows in set (0.05 sec)

補足:覚えておくと便利なフォーマット指定子

%M以外にも用途に応じて指定子を使い分けられます。%bを指定すれば「Jan」「Dec」のような省略形の月名を、%mを指定すれば「01」「12」のような2桁の月番号を取得できます。また、事前に SET lc_time_names = 'ja_JP'; を実行しておけば、「1月」「12月」のような日本語形式で月名を表示させることも可能です。ログ解析やレポート作成時にぜひ活用してください。

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

  2. PHPで数値を月の名前に変換する方法をわかりやすく解説

    PHPで数値(月番号)を月の名前に変換したい場合、date()関数とmktime()関数を組み合わせる方法や、DateTime::createFromFormat()メソッドを使う方法があります。この記事では、それぞれの具体的な実装例と実行結果を紹介します。 例1:date()とmktime()を使った変換方法 mktime()関数で指定した月の日時を作成し、date(F)フォーマットで月の完全な英語名を取得します。あわせて、strtotime()を使って日付に日数を加算する処理も行っています。 <?php $date = 2019-11-11; echo Display