MySQL WEEK() Function
The MySQL WEEK() function returns week portion of a given date or datetime value. It can be between 0-53 or 1-53 depending on the specified mode.
The WEEKOFYEAR() function returns the same as the WEEK() function with the syntax of WEEK(datetime, 3).
Syntax
WEEK(datetime, mode)
Parameters
datetime |
Required. Specify a date or datetime value from which to extract the week. |
mode |
Optional. Specify what day the week starts on. It can take value between 0-7. See the table below for description: |
mode and description
mode | Description | Returns |
---|---|---|
0 | First day of the week is Sunday | 0-53 |
1 | First day of the week is Monday and the first week has more than 3 days | 0-53 |
2 | First day of the week is Sunday | 1-53 |
3 | First day of the week is Monday and the first week has more than 3 days | 1-53 |
4 | First day of the week is Sunday and the first week has more than 3 days | 0-53 |
5 | First day of the week is Monday | 0-53 |
6 | First day of the week is Sunday and the first week has more than 3 days | 1-53 |
7 | First day of the week is Monday | 1-53 |
Note: If mode argument is omitted, the value of default_week_format system variable is used.
Return Value
Returns the week portion of a given date or datetime value.
Example 1:
The example below shows the usage of WEEK() function.
mysql> SELECT WEEK('2018-08-18'); Result: 32 mysql> SELECT WEEK('2018-08-18 10:38:42'); Result: 32 mysql> SELECT WEEK('2018-08-18 10:38:42.000004'); Result: 32 mysql> SELECT WEEK('2014-10-25'); Result: 42 mysql> SELECT WEEK(CURDATE()); Result: 48
Example 2:
Consider a database table called Orders with the following records:
OrderQuantity | Price | OrderTime |
---|---|---|
100 | 1.58 | 2017-08-18 10:38:42 |
120 | 1.61 | 2018-03-23 07:14:16 |
125 | 1.78 | 2018-09-12 05:25:56 |
50 | 1.80 | 2019-01-16 11:52:05 |
200 | 1.72 | 2020-02-06 09:31:34 |
The statement given below can be used to get the week portion of records of column OrderTime:
SELECT *, WEEK(OrderTime, 5) AS WEEK_Value FROM Orders;
This will produce the result as shown below:
OrderQuantity | Price | OrderTime | WEEK_Value |
---|---|---|---|
100 | 1.58 | 2017-08-18 10:38:42 | 33 |
120 | 1.61 | 2018-03-23 07:14:16 | 12 |
125 | 1.78 | 2018-09-12 05:25:56 | 37 |
50 | 1.80 | 2019-01-16 11:52:05 | 2 |
200 | 1.72 | 2020-02-06 09:31:34 | 5 |
❮ MySQL Functions