Mysql 在sql中分组天到周

Mysql 在sql中分组天到周,mysql,sql,Mysql,Sql,在我的数据库中,我有3列,一列表示日,第二列表示月,第三列表示年。它看起来像这样: Day | Month | Year 2 1 2018 17 9 2017 我想将sql中的天分组到周,我看到的所有示例都以“2018-5-2”的格式放在一列中。如何在sql中执行此操作?您可以执行以下操作来提取年份和星期: select yearweek(date(concat_ws('-', year, month, day))) 例如,可以将

在我的数据库中,我有3列,一列表示日,第二列表示月,第三列表示年。它看起来像这样:

 Day |   Month | Year 
 2         1      2018
 17        9      2017

我想将sql中的天分组到周,我看到的所有示例都以“2018-5-2”的格式放在一列中。如何在sql中执行此操作?

您可以执行以下操作来提取年份和星期:

select yearweek(date(concat_ws('-', year, month, day)))

例如,可以将其合并到聚合查询中。

类似的操作应该可以:

SELECT
  WEEK(STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY')) AS Weeknumber
FROM YOURTABLE
GROUP BY WEEK(STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY'))

它将日期值组合成一个日期,然后使用WEEK函数从该日期提取周数。如果您还想选择日期本身(
STR_to_date(CONCAT(Day,“/”,Month,“/”,Year),“%dd/%mm/%YYYY”)
),那么按周数分组就没有多大意义,但您在帖子中没有提到这一点

您想要实现什么还不清楚。我想将天分组到周(7天),例如从2018年2月1日到2018年8月1日,那么周从周二开始?这是一个重要的细节。