考虑到下个月,MySQL组记录了3天

时间:2016-07-09 10:34:17

标签: php mysql

我计划使用此查询将日期分组3天。我希望daygroup字段连续递增,但每个月都会重置。

SELECT id, floor(day(date) / 3) as daygroup, date
FROM mytable order by id, date

结果:

id | daygroup | date 
1  | 8        | 2016-05-24 00:00:00
1  | 8        | 2016-05-25 00:00:00
1  | 8        | 2016-05-26 00:00:00
1  | 9        | 2016-05-27 00:00:00
1  | 9        | 2016-05-28 00:00:00
1  | 9        | 2016-05-29 00:00:00
1  | 10       | 2016-05-30 00:00:00
1  | 10       | 2016-05-31 00:00:00
1  | 3        | 2016-07-09 00:00:00
1  | 3        | 2016-07-10 00:00:00
1  | 3        | 2016-07-11 00:00:00

请注意,在此记录1 | 10 | 2016-05-31 00:00:00之后,daygroup字段将重置为3.我相信这是因为MySQL函数day()

你们有解决方法吗?

1 个答案:

答案 0 :(得分:1)

如上所述here

  

MySQL DAY()返回指定日期的月中某天。

所以你应该使用DAYOFYEAR(date)代替

  

返回日期的年份日期,范围为1到366.