在sql中分组几天到几周

时间:2018-04-24 13:42:10

标签: mysql sql

在我的数据库中,我当天有3列,第二列是本月,第三列是年份,它看起来像这样:

 Day |   Month | Year 
 2         1      2018
 17        9      2017

我想在sql中将日期分为几周,我在一列中以“2018-5-2”格式查看了所有示例。我怎么能在sql中做到这一点?

2 个答案:

答案 0 :(得分:0)

你可以做这样的事情来提取年份和周:

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

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

答案 1 :(得分:0)

这样的事情应该有效:

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'))

它将您的日期值合并到DATE中,然后使用WEEK函数从该日期中提取周数。如果您还想选择日期本身(STR_TO_DATE(CONCAT(Day, '/', Month, '/', Year), '%dd/%mm/%YYYY')),那么对周数进行分组就没有多大意义,但您在帖子中没有提及。