Nis*_*ani 3 mysql group-by monthcalendar
我希望做一些像从表中获取所有行的事情
where date >='2012-05-05' and date<='2012-07-20'
Run Code Online (Sandbox Code Playgroud)
我希望MySQL返回"group by"明智增量的行
2012-05-05 to 2012-06-05(incerement 1 month)
2012-06-06 to 2012-07-06(increment 1` month)
and remaining 2012-07-07 to 2012-07-20 (group the remaining 14 days)
Run Code Online (Sandbox Code Playgroud)
我如何编写我的查询来实现相同的目标?
谢谢...
尝试此解决方案:
您可以通过TIMESTAMPDIFF()函数GROUP BY从参数minimum(2012-05-05)+ 1到每行中的日期经过的月数:
GROUP BY TIMESTAMPDIFF(MONTH, '2012-05-05' + INTERVAL 1 DAY, date)
Run Code Online (Sandbox Code Playgroud)
我们为您的最小参数+1天的原因是:
2012-05-05到了2012-06-040个月,但......2012-05-05到2012-06-051个月^因此,2012-06-05当我们实际想要将它们与它们分组时,所有行将与已经过了0个月的日期分开.
编辑:我摆弄周围这种解决方案不仅通过了一个月的间隔分组,也显示从和到每个区间的日期.
看看这个: