【发布时间】:2018-08-18 18:35:39
【问题描述】:
如何显示从当天开始过去 7 天的所有日期。例如:如果今天是 10/3/2018 。我希望输出是
10/3/2018
9/3/2018
8/3/2018
7/3/2018
6/3/2018
5/3/2018
4/3/2018
现在主要是我的表没有所有日期的条目。所以如果我使用 between 或类似的东西。它只会显示表格中可用的日期。
我实际上是在尝试获取过去 7 天的数据,如果那天没有可用的数据,那么应该是零或空白。
编辑 1:
Select curdate()
union Select date_sub(Curdate(),interval 1 day)
union Select date_sub(Curdate(),interval 2 day)
union Select date_sub(Curdate(),interval 3 day)
union Select date_sub(Curdate(),interval 4 day)
union Select date_sub(Curdate(),interval 5 day)
union Select date_sub(Curdate(),interval 6 day)
from detail
现在这将返回我想要的所有以前的日期,但我仍然无法使用 where 子句正确地 group 它。这样日期就会返回当天的订单数量,如果没有找到则返回 0。
SELECT count(id) from detail where status in(3,7).
这是原始查询
【问题讨论】:
-
SELECT count(id) from order_detail where DATE(date_added) >= DATE(NOW()) - INTERVAL 7 DAY ORDER BY date_added DESC LIMIT 7。我试过了,但它不起作用 -
考虑处理应用代码中数据显示的问题
-
你可以使用Union all
-
始终通过编辑将问题详细信息添加到问题中。不要使用 cmets。