Date and time values can be represented in several formats, such as quoted strings or as numbers, depending on the exact type of the value and other factors. For example, in contexts where MySQL expects a date, it interprets any of
'2015-07-21'
, '20150721'
, and 20150721
as a date. This section describes the acceptable formats for date and time literals. For more information about the temporal data types, such as the range of permitted values, see Section 11.2, “Date and Time Data Types”.
Standard SQL and ODBC Date and Time Literals. Standard SQL permits temporal literals to be specified using a type keyword and a string. The space between the keyword and string is optional.
For example, in contexts where MySQL expects a date, it interprets any of '2015-07-21', '20150721', and 20150721 as a date. This section describes the acceptable formats for date and time literals. For more information about the. Standard SQL and ODBC Date and Time Literals. GETDATE (Transact-SQL); 2 minutes to read +2; In this article. APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running.
MySQL recognizes those constructions and also the corresponding ODBC syntax:
MySQL uses the type keyword and these constructions produce
DATE
, TIME
, and DATETIME
values, respectively, including a trailing fractional seconds part if specified. The TIMESTAMP
syntax produces a DATETIME
value in MySQL because DATETIME
has a range that more closely corresponds to the standard SQL TIMESTAMP
type, which has a year range from 0001
to 9999
. (The MySQL TIMESTAMP
year range is 1970
to 2038
.) String and Numeric Literals in Date and Time Context. MySQL recognizes
DATE
values in these formats:- As a string in either
'
orYYYY-MM-DD
''
format. A “relaxed” syntax is permitted: Any punctuation character may be used as the delimiter between date parts. For example,YY-MM-DD
''2012-12-31'
,'2012/12/31'
,'2012^12^31'
, and'2012@12@31'
are equivalent. - As a string with no delimiters in either
'
orYYYYMMDD
''
format, provided that the string makes sense as a date. For example,YYMMDD
''20070523'
and'070523'
are interpreted as'2007-05-23'
, but'071332'
is illegal (it has nonsensical month and day parts) and becomes'0000-00-00'
. - As a number in either
YYYYMMDD
orYYMMDD
format, provided that the number makes sense as a date. For example,19830905
and830905
are interpreted as'1983-09-05'
.
MySQL recognizes
DATETIME
and TIMESTAMP
values in these formats:- As a string in either
'
orYYYY-MM-DD hh:mm:ss
''
format. A “relaxed” syntax is permitted here, too: Any punctuation character may be used as the delimiter between date parts or time parts. For example,YY-MM-DD hh:mm:ss
''2012-12-31 11:30:45'
,'2012^12^31 11+30+45'
,'2012/12/31 11*30*45'
, and'2012@12@31 11^30^45'
are equivalent.The only delimiter recognized between a date and time part and a fractional seconds part is the decimal point.The date and time parts can be separated byT
rather than a space. For example,'2012-12-31 11:30:45'
'2012-12-31T11:30:45'
are equivalent. - As a string with no delimiters in either
'
orYYYYMMDDhhmmss
''
format, provided that the string makes sense as a date. For example,YYMMDDhhmmss
''20070523091528'
and'070523091528'
are interpreted as'2007-05-23 09:15:28'
, but'071122129015'
is illegal (it has a nonsensical minute part) and becomes'0000-00-00 00:00:00'
. - As a number in either
YYYYMMDDhhmmss
orYYMMDDhhmmss
format, provided that the number makes sense as a date. For example,19830905132800
and830905132800
are interpreted as'1983-09-05 13:28:00'
.
A
DATETIME
or TIMESTAMP
value can include a trailing fractional seconds part in up to microseconds (6 digits) precision. The fractional part should always be separated from the rest of the time by a decimal point; no other fractional seconds delimiter is recognized. For information about fractional seconds support in MySQL, see Section 11.2.7, “Fractional Seconds in Time Values”. Dates containing two-digit year values are ambiguous because the century is unknown. MySQL interprets two-digit year values using these rules:
- Year values in the range
70-99
become1970-1999
. - Year values in the range
00-69
become2000-2069
.
See also Section 11.2.9, “2-Digit Years in Dates”.
For values specified as strings that include date part delimiters, it is unnecessary to specify two digits for month or day values that are less than
10
. '2015-6-9'
is the same as '2015-06-09'
. Similarly, for values specified as strings that include time part delimiters, it is unnecessary to specify two digits for hour, minute, or second values that are less than 10
. '2015-10-30 1:2:3'
is the same as '2015-10-30 01:02:03'
. Values specified as numbers should be 6, 8, 12, or 14 digits long. If a number is 8 or 14 digits long, it is assumed to be in
YYYYMMDD
or YYYYMMDDhhmmss
format and that the year is given by the first 4 digits. If the number is 6 or 12 digits long, it is assumed to be in YYMMDD
or YYMMDDhhmmss
format and that the year is given by the first 2 digits. Numbers that are not one of these lengths are interpreted as though padded with leading zeros to the closest length. Values specified as nondelimited strings are interpreted according their length. For a string 8 or 14 characters long, the year is assumed to be given by the first 4 characters. Otherwise, the year is assumed to be given by the first 2 characters. The string is interpreted from left to right to find year, month, day, hour, minute, and second values, for as many parts as are present in the string. This means you should not use strings that have fewer than 6 characters. For example, if you specify
'9903'
, thinking that represents March, 1999, MySQL converts it to the “zero” date value. This occurs because the year and month values are 99
and 03
, but the day part is completely missing. However, you can explicitly specify a value of zero to represent missing month or day parts. For example, to insert the value '1999-03-00'
, use '990300'
. MySQL recognizes
TIME
values in these formats:- As a string in
'D hh:mm:ss'
format. You can also use one of the following “relaxed” syntaxes:'hh:mm:ss'
,'hh:mm'
,'D hh:mm'
,'D hh'
, or'ss'
. HereD
represents days and can have a value from 0 to 34. - As a string with no delimiters in
'hhmmss'
format, provided that it makes sense as a time. For example,'101112'
is understood as'10:11:12'
, but'109712'
is illegal (it has a nonsensical minute part) and becomes'00:00:00'
. - As a number in
hhmmss
format, provided that it makes sense as a time. For example,101112
is understood as'10:11:12'
. The following alternative formats are also understood:ss
,mmss
, orhhmmss
.
A trailing fractional seconds part is recognized in the
'D hh:mm:ss.fraction'
, 'hh:mm:ss.fraction'
, 'hhmmss.fraction'
, and hhmmss.fraction
time formats, where fraction
is the fractional part in up to microseconds (6 digits) precision. The fractional part should always be separated from the rest of the time by a decimal point; no other fractional seconds delimiter is recognized. For information about fractional seconds support in MySQL, see Section 11.2.7, “Fractional Seconds in Time Values”. For
TIME
values specified as strings that include a time part delimiter, it is unnecessary to specify two digits for hours, minutes, or seconds values that are less than 10
. '8:3:2'
is the same as '08:03:02'
.- Learn MySQL
- MySQL Useful Resources
- Selected Reading
Sr.No. | Name & Description |
---|---|
1 | ADDDATE() Adds dates |
2 | ADDTIME() Adds time |
3 | CONVERT_TZ() Converts from one timezone to another |
4 | CURDATE() Returns the current date |
5 | CURRENT_DATE(), CURRENT_DATE Synonyms for CURDATE() |
6 | CURRENT_TIME(), CURRENT_TIME Synonyms for CURTIME() |
7 | CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP Synonyms for NOW() |
8 | CURTIME() Returns the current time |
9 | DATE_ADD() Adds two dates |
10 | DATE_FORMAT() Formats date as specified |
11 | DATE_SUB() Subtracts two dates |
12 | DATE() Extracts the date part of a date or datetime expression |
13 | DATEDIFF() Subtracts two dates |
14 | DAY() Synonym for DAYOFMONTH() |
15 | DAYNAME() Returns the name of the weekday |
16 | DAYOFMONTH() Returns the day of the month (1-31) |
17 | DAYOFWEEK() Returns the weekday index of the argument |
18 | DAYOFYEAR() Returns the day of the year (1-366) |
19 | EXTRACT Extracts part of a date |
20 | FROM_DAYS() Converts a day number to a date |
21 | FROM_UNIXTIME() Formats date as a UNIX timestamp |
22 | HOUR() Extracts the hour |
23 | LAST_DAY Returns the last day of the month for the argument |
24 | LOCALTIME(), LOCALTIME Synonym for NOW() |
25 | LOCALTIMESTAMP, LOCALTIMESTAMP() Synonym for NOW() |
26 | MAKEDATE() Creates a date from the year and day of year |
27 | MAKETIME MAKETIME() |
28 | MICROSECOND() Returns the microseconds from argument |
29 | MINUTE() Returns the minute from the argument |
30 | MONTH() Returns the month from the date passed |
31 | MONTHNAME() Returns the name of the month |
32 | NOW() Returns the current date and time |
33 | PERIOD_ADD() Adds a period to a year-month |
34 | PERIOD_DIFF() Returns the number of months between periods |
35 | QUARTER() Returns the quarter from a date argument |
36 | SEC_TO_TIME() Converts seconds to 'HH:MM:SS' format |
37 | SECOND() Returns the second (0-59) |
38 | STR_TO_DATE() Converts a string to a date |
39 | SUBDATE() When invoked with three arguments a synonym for DATE_SUB() |
40 | SUBTIME() Subtracts times |
41 | SYSDATE() Returns the time at which the function executes |
42 | TIME_FORMAT() Formats as time |
43 | TIME_TO_SEC() Returns the argument converted to seconds |
44 | TIME() Extracts the time portion of the expression passed |
45 | TIMEDIFF() Subtracts time |
46 | TIMESTAMP() With a single argument, this function returns the date or datetime expression. With two arguments, the sum of the arguments |
47 | TIMESTAMPADD() Adds an interval to a datetime expression |
48 | TIMESTAMPDIFF() Subtracts an interval from a datetime expression |
49 | TO_DAYS() Returns the date argument converted to days |
50 | UNIX_TIMESTAMP() Returns a UNIX timestamp |
51 | UTC_DATE() Returns the current UTC date |
52 | UTC_TIME() Returns the current UTC time |
53 | UTC_TIMESTAMP() Returns the current UTC date and time |
54 | WEEK() Returns the week number |
55 | WEEKDAY() Returns the weekday index |
56 | WEEKOFYEAR() Returns the calendar week of the date (1-53) |
57 | YEAR() Returns the year |
58 | YEARWEEK() Returns the year and week |
ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)
When invoked with the INTERVAL form of the second argument, ADDDATE() is a synonym for DATE_ADD(). The related function SUBDATE() is a synonym for DATE_SUB(). For information on the INTERVAL unit argument, see the discussion for DATE_ADD().
When invoked with the days form of the second argument, MySQL treats it as an integer number of days to be added to expr.
ADDTIME(expr1,expr2)
ADDTIME() adds expr2 to expr1 and returns the result. expr1 is a time or datetime expression and expr2 is a time expression.
CONVERT_TZ(dt,from_tz,to_tz)
This converts a datetime value dt from the time zone given by from_tz to the time zone given by to_tz and returns the resulting value. This function returns NULL if the arguments are invalid.
CURDATE()
Returns the current date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on whether the function is used in a string or numeric context.
CURRENT_DATE and CURRENT_DATE()
CURRENT_DATE and CURRENT_DATE() are synonyms for CURDATE()
CURTIME()
Returns the current time as a value in 'HH:MM:SS' or HHMMSS format, depending on whether the function is used in a string or numeric context. The value is expressed in the current time zone.
CURRENT_TIME and CURRENT_TIME()
CURRENT_TIME and CURRENT_TIME() are synonyms for CURTIME().
CURRENT_TIMESTAMP and CURRENT_TIMESTAMP()
CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().
DATE(expr)
Extracts the date part of the date or datetime expression expr.
DATEDIFF(expr1,expr2)
DATEDIFF() returns expr1 . expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)
These functions perform date arithmetic. date is a DATETIME or DATE value specifying the starting date. expr is an expression specifying the interval value to be added or subtracted from the starting date. expr is a string; it may start with a '-' for negative intervals. unit is a keyword indicating the units in which the expression should be interpreted.
The INTERVAL keyword and the unit specifier are not case sensitive.
The following table shows the expected form of the expr argument for each unit value;
unit Value | ExpectedexprFormat |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTERS |
YEAR | YEARS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
The values QUARTER and WEEK are available beginning with MySQL 5.0.0.
DATE_FORMAT(date,format)
Formats the date value according to the format string.
The following specifiers may be used in the format string. The .%. character is required before format specifier characters.
S. No. | Specifier & Description |
---|---|
1 | %a Abbreviated weekday name (Sun..Sat) |
2 | %b Abbreviated month name (Jan..Dec) |
3 | %c Month, numeric (0..12) |
4 | %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, .) |
5 | %d Day of the month, numeric (00..31) |
6 | %e Day of the month, numeric (0..31) |
7 | %f Microseconds (000000..999999) |
8 | %H Hour (00..23) |
9 | %h Hour (01..12) |
10 | %I Hour (01..12) |
11 | %i Minutes, numeric (00..59) |
12 | %j Day of year (001..366) |
13 | %k Hour (0..23) |
14 | %l Hour (1..12) |
15 | %M Month name (January..December) |
16 | %m Month, numeric (00..12) |
17 | %p AM or PM |
18 | %r Time, 12-hour (hh:mm:ss followed by AM or PM) |
19 | %S Seconds (00..59) |
20 | %s Seconds (00..59) |
21 | %T Time, 24-hour (hh:mm:ss) |
22 | %U Week (00..53), where Sunday is the first day of the week |
23 | %u Week (00..53), where Monday is the first day of the week |
24 | %V Week (01..53), where Sunday is the first day of the week; used with %X |
25 | %v Week (01..53), where Monday is the first day of the week; used with %x |
26 | %W Weekday name (Sunday..Saturday) |
27 | %w Day of the week (0 = Sunday..6 = Saturday) |
28 | %X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V |
29 | %x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
30 | %Y Year, numeric, four digits |
31 | %y Year, numeric (two digits) |
32 | % A literal .%. character |
33 | %x x, for any.x. not listed above |
DATE_SUB(date,INTERVAL expr unit)
This is similar to DATE_ADD() function.
DAY(date)
DAY() is a synonym for DAYOFMONTH().
DAYNAME(date)
Returns the name of the weekday for date.
DAYOFMONTH(date)
Returns the day of the month for date, in the range 0 to 31.
DAYOFWEEK(date)
Returns the weekday index for date (1 = Sunday, 2 = Monday, ., 7 = Saturday). These index values correspond to the ODBC standard.
DAYOFYEAR(date)
Returns the day of the year for date, in the range 1 to 366.
EXTRACT(unit FROM date)
The EXTRACT() function uses the same kinds of unit specifiers as DATE_ADD() or DATE_SUB(), but extracts parts from the date rather than performing date arithmetic.
FROM_DAYS(N)
Given a day number N, returns a DATE value.
Use FROM_DAYS() with caution on old dates. It is not intended for use with values that precede the advent of the Gregorian calendar (1582).
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
Returns a representation of the unix_timestamp argument as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context. The value is expressed in the current time zone. unix_timestamp is an internal timestamp value such as is produced by the UNIX_TIMESTAMP() function.
If format is given, the result is formatted according to the format string, which is used the same way as listed in the entry for the DATE_FORMAT() function.
HOUR(time)
Returns the hour for the time. The range of the return value is 0 to 23 for time-of-day values. However, the range of TIME values actually is much larger, so HOUR can return values greater than 23.
LAST_DAY(date)
Takes a date or datetime value and returns the corresponding value for the last day of the month. Returns NULL if the argument is invalid.
LOCALTIME and LOCALTIME()
LOCALTIME and LOCALTIME() are synonyms for NOW().
LOCALTIMESTAMP and LOCALTIMESTAMP()
LOCALTIMESTAMP and LOCALTIMESTAMP() are synonyms for NOW().
MAKEDATE(year,dayofyear)
Returns a date, given year and day-of-year values. dayofyear must be greater than 0 or the result is NULL.
MAKETIME(hour,minute,second)
Returns a time value calculated from the hour, minute and second arguments.
MICROSECOND(expr)
Returns the microseconds from the time or datetime expression expr as a number in the range from 0 to 999999.
MINUTE(time)
Returns the minute for time, in the range 0 to 59.
MONTH(date)
Returns the month for date, in the range 0 to 12.
MONTHNAME(date)
Returns the full name of the month for date.
NOW()
Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context. The value is expressed in the current time zone.
PERIOD_ADD(P,N)
Adds N months to period P (in the format YYMM or YYYYMM). Returns a value in the format YYYYMM. Note that the period argument P is not a date value.
PERIOD_DIFF(P1,P2)
Returns the number of months between periods P1 and P2. P1 and P2 should be in the format YYMM or YYYYMM. Note that the period arguments P1 and P2 are not date values.
QUARTER(date)
Returns the quarter of the year for date, in the range 1 to 4.
SECOND(time)
Returns the second for time, in the range 0 to 59.
SEC_TO_TIME(seconds)
Returns the seconds argument, converted to hours, minutes, and seconds, as a value in 'HH:MM:SS' or HHMMSS format, depending on whether the function is used in a string or numeric context.
STR_TO_DATE(str,format)
This is the inverse of the DATE_FORMAT() function. It takes a string str and a format string format. STR_TO_DATE() returns a DATETIME value if the format string contains both date and time parts, or a DATE or TIME value if the string contains only date or time parts.
SUBDATE(date,INTERVAL expr unit) and SUBDATE(expr,days)
When invoked with the INTERVAL form of the second argument, SUBDATE() is a synonym for DATE_SUB(). For information on the INTERVAL unit argument, see the discussion for DATE_ADD().
SUBTIME(expr1,expr2)
SUBTIME() returns expr1 . expr2 expressed as a value in the same format as expr1. expr1 is a time or datetime expression, and expr2 is a time.
SYSDATE()
Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context.
TIME(expr)
Extracts the time part of the time or datetime expression expr and returns it as a string.
TIMEDIFF(expr1,expr2)
![Mysql Update Getdate Mysql Update Getdate](http://www.th7.cn/d/file/p/2016/09/28/9a1f103716458a6f8be0c4727e1ff036.jpg)
TIMEDIFF() returns expr1 . expr2 expressed as a time value. expr1 and expr2 are time or date-and-time expressions, but both must be of the same type.
TIMESTAMP(expr), TIMESTAMP(expr1,expr2)
With a single argument, this function returns the date or datetime expression expr as a datetime value. With two arguments, it adds the time expression expr2 to the date or datetime expression expr1 and returns the result as a datetime value.
TIMESTAMPADD(unit,interval,datetime_expr)
Adds the integer expression interval to the date or datetime expression datetime_expr. The unit for interval is given by the unit argument, which should be one of the following values: FRAC_SECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER or YEAR.
The unit value may be specified using one of keywords as shown, or with a prefix of SQL_TSI_. For example, DAY and SQL_TSI_DAY both are legal.
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Returns the integer difference between the date or datetime expressions datetime_expr1 and datetime_expr2. The unit for the result is given by the unit argument. The legal values for unit are the same as those listed in the description of the TIMESTAMPADD() function.
TIME_FORMAT(time,format)
This is used like the DATE_FORMAT() function, but the format string may contain format specifiers only for hours, minutes, and seconds.
If the time value contains an hour part that is greater than 23, the %H and %k hour format specifiers produce a value larger than the usual range of 0..23. The other hour format specifiers produce the hour value modulo 12.
TIME_TO_SEC(time)
![Mysql Update Getdate Mysql Update Getdate](/uploads/1/2/6/5/126504495/758088767.png)
Returns the time argument, converted to seconds.
TO_DAYS(date)
Given a date, returns a day number (the number of days since year 0).
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
If called with no argument, returns a UNIX timestamp (seconds since '1970-01-01 00:00:00' UTC) as an unsigned integer. If UNIX_TIMESTAMP() is called with a date argument, it returns the value of the argument as seconds since '1970-01-01 00:00:00' UTC. date may be a DATE string, a DATETIME string, a TIMESTAMP, or a number in the format YYMMDD or YYYYMMDD.
UTC_DATE, UTC_DATE()
Returns the current UTC date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on whether the function is used in a string or numeric context.
UTC_TIME, UTC_TIME()
Returns the current UTC time as a value in 'HH:MM:SS' or HHMMSS format, depending on whether the function is used in a string or numeric context.
UTC_TIMESTAMP, UTC_TIMESTAMP()
Returns the current UTC date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context.
WEEK(date[,mode])
This function returns the week number for date. The two-argument form of WEEK() allows you to specify whether the week starts on Sunday or Monday and whether the return value should be in the range from 0 to 53 or from 1 to 53. If the mode argument is omitted, the value of the default_week_format system variable is used
Mode | First Day of week | Range | Week 1 is the first week. |
---|---|---|---|
0 | Sunday | 0-53 | with a Sunday in this year |
1 | Monday | 0-53 | with more than 3 days this year |
2 | Sunday | 1-53 | with a Sunday in this year |
3 | Monday | 1-53 | with more than 3 days this year |
4 | Sunday | 0-53 | with more than 3 days this year |
5 | Monday | 0-53 | with a Monday in this year |
6 | Sunday | 1-53 | with more than 3 days this year |
7 | Monday | 1-53 | with a Monday in this year |
WEEKDAY(date)
Returns the weekday index for date (0 = Monday, 1 = Tuesday, . 6 = Sunday).
WEEKOFYEAR(date)
Returns the calendar week of the date as a number in the range from 1 to 53. WEEKOFYEAR() is a compatibility function that is equivalent to WEEK(date,3).
YEAR(date)
Returns the year for date, in the range 1000 to 9999, or 0 for the .zero. date.
YEARWEEK(date), YEARWEEK(date,mode)
Returns year and week for a date. The mode argument works exactly like the mode argument to WEEK(). The year in the result may be different from the year in the date argument for the first and the last week of the year.
Note that the week number is different from what the WEEK() function would return (0) for optional arguments 0 or 1, as WEEK() then returns the week in the context of the given year.
For more information check MySQL Official Website - Date and Time Functions