MySQLで、月の差分を計算する方法をお伝えする。
計算は、PERIOD_DIFF関数を用いれば簡単に求めることができる。

これは、二つの期間の差の月数を返す関数である。

PERIOD_DIFF(P1, P2)

月の差分はP1-P2として計算される。

二つの引数は、「YYMM」または「YYYYMM」でなければならない。
また、DATE型でもないことに注意が必要だ。

実際に、いくつか試してみよう。


mysql> SELECT PERIOD_DIFF(201512, 201501);
+-----------------------------+
| PERIOD_DIFF(201512, 201501) |
+-----------------------------+
|                          11 |
+-----------------------------+
1 row in set (0.00 sec)

mysql> SELECT PERIOD_DIFF(201501, 201512);
+-----------------------------+
| PERIOD_DIFF(201501, 201512) |
+-----------------------------+
|                         -11 |
+-----------------------------+
1 row in set (0.00 sec)

二つのDATE型のカラムから月の差分を計算するにはDATE_FORMAT関数を用いて、次のようにすればよい。
d1とd2をDATE型とする。


PERIOD_DIFF(DATE_FORMAT(d1, '%Y%m'), DATE_FORMAT(d2, '%Y%m'))

適当なデータベースとテーブルを作成して実際に試してみよう。


mysql> CREATE DATABASE sample_database;
Query OK, 1 row affected (0.00 sec)

mysql> USE sample_database;
Database changed

mysql> CREATE TABLE sample_table(d1 DATE, d2 DATE);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO sample_table VALUES ('2015-12-01', '2015-01-01');
Query OK, 1 row affected, 2 warnings (0.00 sec)

mysql> SELECT PERIOD_DIFF(DATE_FORMAT(d1, '%Y%m'), DATE_FORMAT(d2,'%Y%m')) FROM sample_table;
+--------------------------------------------------------------+
| PERIOD_DIFF(DATE_FORMAT(d1, '%Y%m'), DATE_FORMAT(d2,'%Y%m')) |
+--------------------------------------------------------------+
|                                                           11 |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

関連する記事

  • R言語 CRAN Task View:ケモメトリックスと計算物理学R言語 CRAN Task View:ケモメトリックスと計算物理学 CRAN Task View: Chemometrics and Computational Physicsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Katharine Mullen Contact: katharine.mullen at […]
  • Journal of Statistical Software: 記事一覧 Journal of Statistical Software の記事一覧をご紹介する。英語での説明文をgoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 確認日:2017/03/24 論文数:1089 Introduction to stream: An Extensible Framework for Data Stream […]
  • これだけは抑えておきたい成長性分析の基本これだけは抑えておきたい成長性分析の基本 成長性分析とは、様々な観点から成長性・拡大性・発展性を測定する分析である。 規模拡大などの経営戦略がいつも経営者の思い描く通りに進むとは限らないため、様々な観点から自社および自社を取り巻く環境の状況を把握する必要がある。 ここでは、成長性分析の代表的な指標をいくつか紹介する。 売上高伸び率 売上高伸び率とは、前期売上高より当期売上高がどの程度上昇または下降したかを […]
  • Ubuntu,R h2oパッケージのインストールの方法Ubuntu,R h2oパッケージのインストールの方法 Rのパッケージh2oは、さまざまなクラスタ環境内のニューラルネットワーク(ディープラーニング)、ランダムフォレスト、勾配ブースティングマシン、一般化線形モデルなどの並列分散機械学習アルゴリズムを計算するビッグデータのためのオープンソースの数学エンジンH2O用のRスクリプト機能である。 ここでは、ubuntu14.04環境下でh2oパッケージのインストールの仕方についてお […]
  • Ubuntu,R OpenGLを用いた3次元可視化パッケージrglのインストール方法Ubuntu,R OpenGLを用いた3次元可視化パッケージrglのインストール方法 Ubuntu上のRで、OpenGLを用いた3次元可視化パッケージであるrglをインストールする方法をいくつかのパターンに分けてお伝します。 Rはaptコマンドによりインストールされているものとします。 R上でinstall.packages関数によりrlgパッケージをインストールしようとしても、次のように「X11が見つからない」とエラーが出てインストールできません。 […]
MySQL 月の差分を計算する方法