使用标准的mysql函数有一种方法来编写一个查询,该查询将返回两个日期之间的天数列表.
例如,给定2009-01-01和2009-01-13,它将返回一个包含值的列表:
2009-01-01
2009-01-02
2009-01-03
2009-01-04
2009-01-05
2009-01-06
2009-01-07
2009-01-08
2009-01-09
2009-01-10
2009-01-11
2009-01-12
2009-01-13
Run Code Online (Sandbox Code Playgroud)
编辑:看来我还不清楚.我想生成这个列表.我有值存储在数据库中(按日期时间),但是希望它们在左外连接上聚合到上面的日期列表中(我希望在某些连接的右侧有一段时间为null并且会处理这个).
有没有办法在不使用任何MySQL表的情况下获取两个日期之间的所有日期
就像是:
SELECT date BETWEEN '2012-02-10' AND '2012-02-15'
Run Code Online (Sandbox Code Playgroud)
这将导致:
out put date list
2012-02-10
...
2012-02-15
Run Code Online (Sandbox Code Playgroud) 有一个表有这样的数据:
-----------------------
| id | date |
-----------------------
| 1 | 2016-07-11 |
| 2 | 2016-07-11 |
| 3 | 2016-07-15 |
| 4 | 2016-07-15 |
| 5 | 2016-07-15 |
| 6 | 2016-07-16 |
| 7 | 2016-07-19 |
| 8 | 2016-07-20 |
-----------------------
Run Code Online (Sandbox Code Playgroud)
我想得到一个日期范围(所有日期)和每个日期的ID计数,当没有记录时返回0.
如果在2016-07-10到2016-07-20之间运行日期,结果应如下所示:
--------------------------
| date | count(id) |
--------------------------
| 2016-07-10 | 0 |
| 2016-07-11 | 2 |
| 2016-07-12 | 0 |
| 2016-07-13 | 0 |
| 2016-07-14 …Run Code Online (Sandbox Code Playgroud)