読者です 読者をやめる 読者になる 読者になる

MySQLで月の差分を求める関数

ググっても見つからなかったがMySQLの日付時刻関数を調べていたら発見。 OracleのMONTHS_BETWEENのような感じで使える。ただし、違いがあって Oracleは小数点付きで返すがMySQLは整数で返す。

PERIOD_DIFF(P1,P2)

期間 P1 と P2 間の月の数を戻します。P1 および P2 は、YYMM または YYYYMM のフォーマットになります。期間引数 P1 および P2 は日付値ではありませんのでご注意ください。

http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html#function_period-diff

MySQL 5.1で試してみた。

mysql> SELECT PERIOD_DIFF(201302, 201201);
+-----------------------------+
| PERIOD_DIFF(201302, 201201) |
+-----------------------------+
|                          13 |
+-----------------------------+