在SQL结果中(在MySQL或Perl端)填充空日期的最直接方法是什么?
我正在用如下的查询从MySQL表构建一个快速CSV:
select DATE(date),count(date) from table group by DATE(date) order by date asc;
并将它们转储到Perl中的一个文件中:
while(my($date,$sum) = $sth->fetchrow) {
print CSV "$date,$sum\n"}
然而,数据中存在日期差距:
| 2008-08-05 | 4 | | 2008-08-07 | 23 |
我想用零计数条目填充数据,以填写缺失的日子:
| 2008-08-05 | 4 | | 2008-08-06 | 0 | | 2008-08-07 | 23 |
我想出了一个非常尴尬(几乎可以肯定是错误的)的解决办法,每个月都有很多天,还有一些数学,但是在MySQL或Perl方面,必须有更直接的解决办法。
我为什么这么笨,有什么天才的主意/耳光吗?
最后,我使用了一个存储过程,该存储过程为所讨论的日期范围生成了一个临时表,原因如下:
- 我知道每次我要找的日期范围
- 不幸的是,所讨论的服务器不是我可以在atm上安装perl模块的服务器,它的状态已经破旧到没有任何远程日期:-y。
Perl的日期/日期-迭代答案也很好,我希望我可以选择多个答案!