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

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

MySQLでタイムスタンプ型のカラムから「月の番号だけ」を取り出したい場合、DATE_FORMAT() 関数を使うのが便利です。書式指定子 %m を指定することで、01〜12の形式で月番号を文字列として取得できます。

この記事では、実際にテーブルを作成し、データを登録して、月番号を抽出するまでの一連の手順をサンプルコード付きで解説します。

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' を渡すことで、月番号を2桁のゼロ埋め形式(01〜12)で取得できます。

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

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

+-----------+
| MonthName |
+-----------+
| 01        |
| 12        |
| 10        |
+-----------+
3 rows in set (0.00 sec)

補足:MONTH()関数との違い

なお、数値型として月を取得したい場合は MONTH() 関数を使う方法もあります。SELECT MONTH(ArrivalDate) FROM DemoTable1999; のように記述すると、1や12といった整数値がそのまま返されます。ゼロ埋めの文字列が必要か、数値が必要かによって使い分けるとよいでしょう。

  1. MySQLでDATETIME型を数値に変換する方法|UNIX_TIMESTAMP関数の使い方を解説

    MySQLで日時(DATETIME型)のデータを数値に変換したい場合は、UNIX_TIMESTAMP()関数を使用します。この関数は、指定した日時を「1970年1月1日 00:00:00(UTC)」からの経過秒数であるUnixタイムスタンプとして返します。基本構文DATETIMEを数値に変換する際の基本構文は以下の通りです。SELECT UNIX_TIMESTAMP(yourColumnName) AS anyVariableName FROM yourTableName;それでは、実際にどのように動作するのか、サンプルテーブルを作成して確認していきましょう。サンプルテーブルの作成まず、テスト

  2. PHPのdate_parse()関数でタイムスタンプから日・月・年を抽出する方法

    date_parse()関数でタイムスタンプを解析するPHPでタイムスタンプ(日時文字列)から日・月・年を抽出するには、date_parse() 関数を使用します。この関数は日時文字列を解析し、年・月・日・時・分・秒などの情報を連想配列として返してくれます。基本構文は以下の通りです。print_r(date_parse(anyTimeStampValue));サンプルコード具体的なタイムスタンプ値を解析するPHPコードは以下のようになります。$yourTimeStampValue="2019-02-04 12:56:50"; print_r(date_parse($your