【问题标题】:get all the past 7 dates from the current date in mysql从mysql中的当前日期获取过去7个日期
【发布时间】: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。

标签: php mysql sql date web


【解决方案1】:

无需在任何表格中添加任何日期

您可以使用 UNION 获得最后 7 天,如下所示

Select if(created_at,created_at,0) as past_seven_days from (

    Select curdate() as past_seven_days
          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)
         union
    Select date_sub(Curdate(),interval 7 day) )as p

left join url as u on p.past_seven_days = u.created_at 

【讨论】:

  • @Harjeev Singh,如果您创建一个包含所有您需要的日期的日历表,那么该表的大小每年都会增加。因为也有闰年。所以,这种方法是获取最后 7 天的最简单方法...
【解决方案2】:

一种解决方案是创建一个包含您需要的所有日期的日历表。然后,您可以将其加入您的数据以获取您所追求的内容

【讨论】:

  • 这是有道理的。如果没有任何结果,我只会这样做。
猜你喜欢
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
相关资源
最近更新 更多