小编use*_*196的帖子

在sql结果中填充空日期的最简单方法是什么(在mysql或perl端)?

我正在从一个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方面必须有更直接的东西.

面对为什么我这么愚蠢的任何天才想法/拍打?


我最终使用了一个存储过程,该过程为所讨论的日期范围生成临时表,原因如下:

  • 我知道我每次都会寻找的日期范围
  • 遗憾的是,有问题的服务器不是我可以在atm上安装perl模块的,并且它的状态已经破旧,它没有任何远程日期:: - y已安装

perl Date/DateTime迭代答案也非常好,我希望我能选择多个答案!

mysql perl calendar datediff

33
推荐指数
2
解决办法
2万
查看次数

标签 统计

calendar ×1

datediff ×1

mysql ×1

perl ×1