The year is divided into 12 months. We can break down a month in four weeks.
In MySQL, how to return the week of the month? (Example: first week: 2 entries, second w
Week of month (where the starting incomplete week is counted as a whole)
select ceiling((day(now()) -
(6 - weekday(date_format(now(),'%Y-%m-01'))))/7)
+ case when 6 - weekday(date_format(now(),'%Y-%m-01'))> 0
then 1 else 0 end week_of_month;
SELECT (WEEK('2020-09-27') - WEEK(DATE_FORMAT('2020-09-27','%Y-%m-01')))+1
SELECT WEEK(my_date_field,5) - WEEK(DATE_SUB(my_date_field,
INTERVAL DAYOFMONTH(my_date_field) - 1 DAY),5) + 1
Or you can see here.
FLOOR((DayOfMonth(dateCol)-1)/7)+1
I'd like to make it clear that this is probably not a good way to divide your data - (see the comments), but that this will get you as close as you can get.
Use the MySQL built-in function week to find the week number for the year, then subtract the week number for the first day of the month.
SELECT WEEK('2012-02-20') - WEEK('2012-02-01')
there are plenty of options in the documentation to customize the call to fit exactly what you are looking for, but I hope my example gives you an idea of what is available to you.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
TO_CHAR(my_date, 'W')
Returns exact number of week in particular month.