MySQL Date Format Specifiers (Full List)

The following table contains a full list of format specifiers that can be used in format strings with functions like DATE_FORMAT(), STR_TO_DATE(), and FROM_UNIXTIME() in MySQL.

SpecifierDescription
%aAbbreviated weekday name (Sun..Sat)
%bAbbreviated month name (Jan..Dec)
%cMonth, numeric (0..12)
%DDay of the month with English suffix (0th1st2nd3rd, …)
%dDay of the month, numeric (00..31)
%eDay of the month, numeric (0..31)
%fMicroseconds (000000..999999)
%HHour (00..23)
%hHour (01..12)
%IHour (01..12)
%iMinutes, numeric (00..59)
%jDay of year (001..366)
%kHour (0..23)
%lHour (1..12)
%MMonth name (January..December)
%mMonth, numeric (00..12)
%pAM or PM
%rTime, 12-hour (hh:mm:ss followed by AM or PM)
%SSeconds (00..59)
%sSeconds (00..59)
%TTime, 24-hour (hh:mm:ss)
%UWeek (00..53), where Sunday is the first day of the week; WEEK() mode 0
%uWeek (00..53), where Monday is the first day of the week; WEEK() mode 1
%VWeek (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X
%vWeek (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x
%WWeekday name (Sunday..Saturday)
%wDay of the week (0=Sunday..6=Saturday)
%XYear for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%xYear for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%YYear, numeric, four digits
%yYear, numeric (two digits)
%%A literal % character
%xx, for any “x” not listed above

Source: MySQL documentation

Example

The above format specifiers can be used to construct a format string as required. Here’s an example of using some of the above format specifiers to provide a format string for the DATE_FORMAT() function:

SELECT DATE_FORMAT('2029-10-16 08:09:17', '%r %W, %D %M %Y');

Result:

+-------------------------------------------------------+
| DATE_FORMAT('2029-10-16 08:09:17', '%r %W, %D %M %Y') |
+-------------------------------------------------------+
| 08:09:17 AM Tuesday, 16th October 2029                |
+-------------------------------------------------------+

Here’s an example of a format string consisting of just one format specifier:

SELECT DATE_FORMAT('2029-10-16', '%W');

Result:

+---------------------------------+
| DATE_FORMAT('2029-10-16', '%W') |
+---------------------------------+
| Tuesday                         |
+---------------------------------+

The GET_FORMAT() Function

In addition to the above individual format specifiers, you can use the GET_FORMAT() function to return the full format string, without needing to remember which format specifiers, and in which order, to include in the format string. This function can be useful for when working with functions that require a format string.