Date and Time Functions
TiDB supports all of the date and time functions available in MySQL 5.7.
Date/Time functions:
| Name | Description | 
|---|---|
ADDDATE() | Add time values (intervals) to a date value | 
ADDTIME() | Add time | 
CONVERT_TZ() | Convert from one time zone to another | 
CURDATE() | Return the current date | 
CURRENT_DATE(), CURRENT_DATE | Synonyms for CURDATE() | 
CURRENT_TIME(), CURRENT_TIME | Synonyms for CURTIME() | 
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP | Synonyms for NOW() | 
CURTIME() | Return the current time | 
DATE() | Extract the date part of a date or datetime expression | 
DATE_ADD() | Add time values (intervals) to a date value | 
DATE_FORMAT() | Format date as specified | 
DATE_SUB() | Subtract a time value (interval) from a date | 
DATEDIFF() | Subtract two dates | 
DAY() | Synonym for DAYOFMONTH() | 
DAYNAME() | Return the name of the weekday | 
DAYOFMONTH() | Return the day of the month (0-31) | 
DAYOFWEEK() | Return the weekday index of the argument | 
DAYOFYEAR() | Return the day of the year (1-366) | 
EXTRACT() | Extract part of a date | 
FROM_DAYS() | Convert a day number to a date | 
FROM_UNIXTIME() | Format Unix timestamp as a date | 
GET_FORMAT() | Return a date format string | 
HOUR() | Extract the hour | 
LAST_DAY | Return the last day of the month for the argument | 
LOCALTIME(), LOCALTIME | Synonym for NOW() | 
LOCALTIMESTAMP, LOCALTIMESTAMP() | Synonym for NOW() | 
MAKEDATE() | Create a date from the year and day of year | 
MAKETIME() | Create time from hour, minute, second | 
MICROSECOND() | Return the microseconds from argument | 
MINUTE() | Return the minute from the argument | 
MONTH() | Return the month from the date passed | 
MONTHNAME() | Return the name of the month | 
NOW() | Return the current date and time | 
PERIOD_ADD() | Add a period to a year-month | 
PERIOD_DIFF() | Return the number of months between periods | 
QUARTER() | Return the quarter from a date argument | 
SEC_TO_TIME() | Converts seconds to 'HH:MM:SS' format | 
SECOND() | Return the second (0-59) | 
STR_TO_DATE() | Convert a string to a date | 
SUBDATE() | Synonym for DATE_SUB() when invoked with three arguments | 
SUBTIME() | Subtract times | 
SYSDATE() | Return the time at which the function executes | 
TIME() | Extract the time portion of the expression passed | 
TIME_FORMAT() | Format as time | 
TIME_TO_SEC() | Return the argument converted to seconds | 
TIMEDIFF() | Subtract time | 
TIMESTAMP() | With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments | 
TIMESTAMPADD() | Add an interval to a datetime expression | 
TIMESTAMPDIFF() | Subtract an interval from a datetime expression | 
TO_DAYS() | Return the date argument converted to days | 
TO_SECONDS() | Return the date or datetime argument converted to seconds since Year 0 | 
UNIX_TIMESTAMP() | Return a Unix timestamp | 
UTC_DATE() | Return the current UTC date | 
UTC_TIME() | Return the current UTC time | 
UTC_TIMESTAMP() | Return the current UTC date and time | 
WEEK() | Return the week number | 
WEEKDAY() | Return the weekday index | 
WEEKOFYEAR() | Return the calendar week of the date (1-53) | 
YEAR() | Return the year | 
YEARWEEK() | Return the year and week | 
For details, see Date and Time Functions.
MySQL compatibility
The function str_to_date() is supported by TiDB, but is unable to parse all date and time values. In addition, the following date and time formatting options are not implemented:
| Format | Description | 
|---|---|
| "%a" | Abbreviated weekday name (Sun..Sat) | 
| "%D" | Day of the month with English suffix (0th, 1st, 2nd, 3rd) | 
| "%U" | Week (00..53), where Sunday is the first day of the week; WEEK() mode 0 | 
| "%u" | Week (00..53), where Monday is the first day of the week; WEEK() mode 1 | 
| "%V" | Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X | 
| "%v" | Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x | 
| "%W" | Weekday name (Sunday..Saturday) | 
| "%w" | Day of the week (0=Sunday..6=Saturday) | 
| "%X" | Year for the week where Sunday is the first day of the week, numeric, four digits. | 
| "%x" | Year for the week, where Monday is the first day of the week, numeric, four digits. | 
See issue #30082 for more details.
Related system variables
The default_week_format variable affects the WEEK() function.
Was this page helpful?