メモ.LAST_DAY 関数が使えないさくらへの対策として.

YYYYMM月の最終日の取得には,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>

こちらもあわせてどうぞ

Leave a Reply

直近のつぶやきを読み込みちゅう...