相关疑难解决方法(0)

从日期范围生成天数

我想运行一个类似的查询

select ... as days where `date` is between '2010-01-20' and '2010-01-24'
Run Code Online (Sandbox Code Playgroud)

并返回如下数据:

days
----------
2010-01-20
2010-01-21
2010-01-22
2010-01-23
2010-01-24

mysql sql datetime between

134
推荐指数
6
解决办法
11万
查看次数

在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万
查看次数

MySQL:是否可以使用没有表的值"填充"SELECT?

我需要显示每年和每月的"订单"总数.但有几个月没有数据,但我想显示那个月(总值为零).我可以用每年12条记录创造一个可靠的'月',但是有没有办法在不引入新表的情况下获得一系列月份?

就像是:

SELECT [all year-month combinations between january 2000 and march 2011] 
FROM DUAL AS years_months
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?你可以使用SELECT和某种公式来"动态创建"数据吗?!

更新:

自己发现: 从日期范围生成天数

这个问题中接受的答案是我正在寻找的.也许不是最简单的方法,但它可以做我想要的:根据公式填充数据选择....

在过去十年的所有月份中"创建"一张桌子:

SELECT CONCAT(MONTHNAME(datetime), ' ' , YEAR(datetime)) AS YearMonth,
       MONTH(datetime) AS Month,
       YEAR(datetime) AS Year 
FROM (
    select (curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) MONTH) as datetime
    from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union …
Run Code Online (Sandbox Code Playgroud)

mysql select date

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

标签 统计

mysql ×3

between ×1

calendar ×1

date ×1

datediff ×1

datetime ×1

perl ×1

select ×1

sql ×1