SQL で存在するレコードが取得できます。存在しないレコードは穴埋めされません。
そうしますと、とある年月の一日から月末までレコードを取得したいのに、存在しないために歯抜けになってしまった、そんなケースに遭遇しました><。
歯抜けをなくして、存在しないレコードも埋めたいのです。
今回は、指定年月の一日から末日までのリストを返す MySQL をノートいたします。
2016年8月14日18時00分追記。シンプル・日付特化版を投稿いたしました♪
一日から末日までのリストを返す MySQL
SET @target = STR_TO_DATE('201601', '%Y%m'); SET @firdt_day = DATE_FORMAT(@target, '%Y-%m-01'); SELECT DATE_FORMAT(DATE_ADD(@firdt_day, INTERVAL tmp.generate_series DAY), '%Y-%m-%d') AS day FROM ( SELECT 0 generate_series FROM DUAL WHERE (@num:=-1)*0 UNION ALL SELECT @num:=@num+1 FROM `information_schema`.COLUMNS ) AS tmp HAVING DATE_FORMAT(day, '%Y%m') = DATE_FORMAT(@target, '%Y%m');