Nな人のWebしるべ
arrow_backBACK

MySQLでカレンダーを作る

MySQL

MySQLのSQL文だけでカレンダーを作ることが出来ます。

例えば、2017年10月のカレンダーをつくるなら、

SELECT
    @f := DATE_FORMAT(CURDATE(), "2017-10-01") AS day
UNION ALL
SELECT
    @f := date_format(date_add(@f, interval 1 day), "%Y-%m-%d") AS day
FROM
    `information_schema`.COLUMNS
WHERE
    @f < LAST_DAY(DATE_FORMAT(CURDATE(), "2017-10-01"))

のようになります。

同様に、2018年1月のカレンダーを作りたいなら、

SELECT
    @f := DATE_FORMAT(CURDATE(), "2018-01-01") AS day
UNION ALL
SELECT
    @f := date_format(date_add(@f, interval 1 day), "%Y-%m-%d") AS day
FROM
    `information_schema`.COLUMNS
WHERE
    @f < LAST_DAY(DATE_FORMAT(CURDATE(), "2018-01-01"))

のような形になります。

POSTED AT 2018-10-28 07:40:30
 
名前:Nな人
職種:多分エンジニア
好きなもの:P言語(perl, python, php)


Web系のエンジニアをやっているNな人という人物。
業務ではPHPをメインで扱っており、Silex、CakePHP3を主に利用しています。
あとは趣味でLaravelを触っていたり、インフラをオンプレでちょこちょこやってたりするおっさんです。