• このエントリーをはてなブックマークに追加
  • このエントリをクリップ! このエントリをクリップ!

メモ.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>

コメントをドウゾ

will not be published.

  • twitter
  • facebook
  • github
  • hatena bookmark
  • SlideShare
  • flickr
  • foursquare
  • ustream
  • tumblr
  • friendfeed
  • mixi
  • Apple
  • WordPress
  • come icons are powered by komodomedia!