Php 从某个日期开始,按7天的间隔对行进行分组

Php 从某个日期开始,按7天的间隔对行进行分组,php,mysql,Php,Mysql,有没有一种方法可以从Mysql中的某个日期开始按7天的间隔(datetime)对行进行分组?选择用户。*from users SELECT users.* from users WHERE created_at >= '2011-12-01' AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY) 在>='2011-12-01'处创建 谢谢你的快速回答!但这只给了我前7天的时间间隔。我需要从那个日期开始的所有7天间隔。这

有没有一种方法可以从Mysql中的某个日期开始按7天的间隔(datetime)对行进行分组?

选择用户。*from users
SELECT users.* from users 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
在>='2011-12-01'处创建
谢谢你的快速回答!但这只给了我前7天的时间间隔。我需要从那个日期开始的所有7天间隔。这非常接近,但这给了我从周日或周一开始的几周。我需要的开始日期是给定日期的工作日。它工作得很好!我对Mysql中的数据处理不是很熟悉,但似乎并不难。非常感谢。这需要每天排一行吗?@AndrewTibbetts你是什么意思?datediff需要在一周内的每一天排一行日期吗?换句话说,
groupby
中的
div7
是否需要7行?@ypercubeᵀᴹ 真棒的回答,可能是重复的
SELECT *
FROM  `table` 
GROUP BY WEEK( ADDDATE( `date_column` , WEEKDAY(NOW()) ) ) 
SELECT 
    1 + DATEDIFF(columnDate, @start_date) DIV 7  AS weekNumber
  , @start_date + INTERVAL (DATEDIFF(columnDate, @start_date) DIV 7) WEEK
      AS week_start_date
  , MIN(columnDate) AS actual_first_date
  , MAX(columnDate) AS actual_last_date
  , SUM(otherColumn)
  , AVG(otherColumn)
  --- 
FROM 
    tableX 
WHERE 
    columnDate >= @start_date 
GROUP BY
    DATEDIFF(columnDate, @start_date) DIV 7 ;