有一个包含如下字段的表:(id、日期、间隔天数) 例如,日期 ='2015-06-30' 且间隔天数 =3 列出 (date - (date+intervaldays)) 之间的所有日期(如果有的话)的查询是什么,所以输出将类似于:
id 2015-06-30
id 2015-07-01
id 2015-07-02
我记得 DATE_ADD(date, INTERVAL Intervaldays DAY) 将给出最后一个日期,那么我如何列出之间的天数
最佳答案
实际上感谢@Mark Bannister this post 我想出了这个完美运行的查询
select selected_date from
mytable JOIN
(select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) selected_date from
(select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4
) v
ON v.selected_date >= start_date AND v.selected_date<=DATE_ADD(start_date, INTERVAL days_interval DAY)
有什么改进吗?
关于MySQL 日期添加间隔作为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148103/