MySQLで特定日からの連続する日付の一覧を作る
MySQLで分析するときに、連続する日付の表を仮想的に組み立てたいときってありますよね。
SET @start_day = '2017-04-01'; SELECT DATE_FORMAT(DATE_ADD(@start_day, INTERVAL tmp.series DAY), '%Y-%m-%d') AS day FROM ( SELECT 0 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-%d') <= DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d');
結果
ちなみに
BigQueryだともうちょい簡単
SELECT date FROM UNNEST(GENERATE_DATE_ARRAY('2017-04-01', CURRENT_DATE())) AS date ORDER BY date;
- 作者: Bill Karwin,和田卓人,和田省二,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
- 購入: 9人 クリック: 698回
- この商品を含むブログ (46件) を見る