MySQL | WEEKOFYEAR method
Start your free 7-days trial now!
MySQL's WEEKOFYEAR(~)
method returns the week number (1 - 53) from a given date or datetime.
This method assumes Monday is the first day of the week & the first week of the year has more than 3 days.
Parameters
1. date
| date/datetime
The date/datetime to retrieve the week number from.
Return value
A week number in the range 1 - 53.
Examples
Consider the following table about some students:
student_id | fname | lname | day_enrolled | age | username |
---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
Basic usage
To return the week number from the date that current students enrolled:
SELECT fname, WEEKOFYEAR(day_enrolled)FROM students;
+----------+--------------------------+| fname | WEEKOFYEAR(day_enrolled) |+----------+--------------------------+| Sky | 49 || Ben | 16 || Travis | 33 || Arthur | 13 || Benjamin | 1 |+----------+--------------------------+
To return students who were enrolled before week 26
:
SELECT fname, WEEKOFYEAR(day_enrolled)FROM studentsWHERE WEEKOFYEAR(day_enrolled) < 26;
+----------+--------------------------+| fname | WEEKOFYEAR(day_enrolled) |+----------+--------------------------+| Ben | 16 || Arthur | 13 || Benjamin | 1 |+----------+--------------------------+
To return week number from a datetime:
SELECT WEEKOFYEAR('2020-04-12 06:05:55');
+-----------------------------------+| WEEKOFYEAR('2020-04-12 06:05:55') |+-----------------------------------+| 15 |+-----------------------------------+