[mysql][さくら対策] 指定した月の最終日を取得する
メモ.LAST_DAY 関数が使えないさくらへの対策として.
YYYY年MM月の最終日の取得には,version 4.1.1 以降であれば
SELECT DATE_FORMAT( LAST_DAY( YYYYMM01 ), ‘%d’ );
で済みますが,version 4.0 系な現在レンタルちゅうのさくらサーバではこれが使えません.そんなときは,
SELECT DATE_FORMAT( DATE_SUB( YYYYMM01 + 100, INTERVAL 1 DAY ), ‘%d’);SELECT DATE_FORMAT( DATE_SUB( DATE_ADD( YYYYMM01, INTERVAL 1 MONTH ), INTERVAL 1 DAY ), ‘%d’);
とすれば OK です.
先の記述だと,12月の場合に NULL になってしまうため,修正しました.
mysql> SELECT DATE_FORMAT( LAST_DAY( 20080201 ), '%d' ) AS 'last day of 200702'; +——————–+ | last day of 200702 | +——————–+ | 29 | +——————–+ 1 row in set (0.00 sec)mysql> SELECT DATE_FORMAT( DATE_SUB( 20080201 + 100, INTERVAL 1 DAY ), ‘%d’ ) AS ‘last day of 200702′;mysql> SELECT DATE_FORMAT( DATE_SUB( DATE_ADD( 20080201, INTERVAL 1 MONTH ), INTERVAL 1 DAY ), ‘%d’ ) AS ‘last day of 200702′; +——————–+ | last day of 200702 | +——————–+ | 29 | +——————–+ 1 row in set (0.00 sec) mysql>



![twitomonitor [ついともにた] twitomonitor [ついともにた]](http://www.iwa-ya.net/img/banner/twitomonitor.png)


