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 | +-----------------------------+