【发布时间】:2016-04-18 20:58:30
【问题描述】:
我有一个查询(从 bla.. bla.. 中选择 *)产生这样的日期范围结果:
code | date1 | date2
a | 2016-04-19 | 2016-04-21 |
b | 2016-04-13 | 2016-04-14 |
我想在 date1 和 date2 之间生成该日期范围的每一天,如下所示:
代码 |日期结果
a | 2016-04-19
a | 2016-04-20
a | 2016-04-21
b | 2016-04-13
b | 2016-04-14
我找到了在两个日期范围之间产生每个日期的查询示例,如下所示:
SELECT ADDDATE('2016-04-10', INTERVAL @i:=@i+1 DAY) AS DAY
FROM (
SELECT a.a
FROM (SELECT 0 AS a 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) AS a
CROSS JOIN (SELECT 0 AS a 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) AS b
CROSS JOIN (SELECT 0 AS a 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) AS c
) a
JOIN (SELECT @i := -1) r1
WHERE
@i < DATEDIFF('2016-04-19', '2016-04-10')
但我无法用我的查询来实现它:(
【问题讨论】: