在 MySQL 中为用户群增长图创建连续日期范围
在 MySQL 中创建连续日期范围,即使是没有记录的日子,您可以利用以下技术:
<br>SELECT DATE_ADD('2003-01-01 00:00:00.000', INTERVAL n5.num<em>10000 n4.num</em>1000 n3.num<em>100 n2.num</em>10 n1.num DAY ) AS日期<br>来自<br>(选择 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n1,<br>(SELECT 0 AS num UNION ALL选择 1 联合全部 选择 2 联合全部 选择 3 联合全部选择 4 联合全部选择 5 联合全部选择 6 联合全部选择 7 联合全部选择 8 联合全部选择 9) n2,<br>(SELECT 0 AS num 联合全部选择 1 联合全部选择 2 联合全部选择 3 联合全部选择 4联合所有选择 5 联合所有选择 6 联合所有选择7 UNION ALL SELECT 8 UNION ALL SELECT 9) n3,<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL选择 8 联合所有选择 9) n4,<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n5<br> 日期日期 >='2011-01-02 00:00:00.000' AND 日期 ORDER BY date<br>
查询通过组合 n1 到 n5 列(每列代表单个数字)来生成日期的顺序范围。总范围由每列的最大值决定(例如,如果 n3 的最大值为 3,则范围跨越 399 天)。
要限制日期范围,只需将 WHERE 子句替换为所需的日期间隔,例如:
<br>WHERE date >= MIN(your_table_date_field) AND 日期
以上是如何在 MySQL 中生成连续的日期范围以进行数据可视化?的详细内容。更多信息请关注PHP中文网其他相关文章!