我正在从一个mysql表构建一个快速的csv,其查询如下:
select DATE(date),count(date) from table group by DATE(date) order by date asc;
Run Code Online (Sandbox Code Playgroud)
并通过以下方式将它们转储到perl中的文件:
while(my($date,$sum) = $sth->fetchrow) {
print CSV "$date,$sum\n"
}
Run Code Online (Sandbox Code Playgroud)
但是数据中存在日期差距:
| 2008-08-05 | 4 |
| 2008-08-07 | 23 |
Run Code Online (Sandbox Code Playgroud)
我想填充数据以填写零计数条目的缺失日期,最终得到:
| 2008-08-05 | 4 |
| 2008-08-06 | 0 |
| 2008-08-07 | 23 |
Run Code Online (Sandbox Code Playgroud)
我把一个非常笨拙(几乎肯定是错误的)的解决方法打包在一起,每个月都有一些日数和一些数学,但是在mysql或perl方面必须有更直接的东西.
面对为什么我这么愚蠢的任何天才想法/拍打?
我最终使用了一个存储过程,该过程为所讨论的日期范围生成临时表,原因如下:
perl Date/DateTime迭代答案也非常好,我希望我能选择多个答案!