动态创建日期范围以便与报表配合使用的最佳方法。
因此,如果给定的一天没有活动,我可以避免报表上的空行。
通常是为了避免此问题:在sql结果中(在mysql或perl端)填充空日期的最直接方法是什么?
在MySQL中,没有直接的方法可以做到这一点。最好的选择是用您选择的服务器端语言生成一个daterange数组,然后从数据库中提取数据,并使用date作为键将结果数组与daterange数组合并。
您使用哪种服务器端语言?
编辑:
基本上,您将要做的是(伪代码):
// Create an array with all dates for a given range dates = makeRange(startDate, endDate); getData = mysqlQuery('SELECT date, x, y, z FROM a WHERE a AND b AND c'); while (r = fetchRowArray(getData)) { dates[ date(r['date']) ] = Array ( x, y, z); }
您最终将获得一系列可以循环浏览的日期,以及具有或不具有活动数据的日期。
可以轻松修改以按小时分组/过滤数据。