How to Use the MySQL DATE_FORMAT() Function
In this tutorial, you'll learn how to use the MySQL DATE_FORMAT() function.
DATE_FORMAT() formats a date as specified.
MySQL DATE_FORMAT() Syntax
The syntax of the DATE_FORMAT() function is as follows:
DATE_FORMAT(date, format)
Arguments
- date: Required. The date that you want to format.
- format: Required. The format to use.
Below is a list of the format string you can use to format a date:
Format | Description |
%a | Abbreviated weekday name (Sun..Sat) |
%b | Abbreviated month name (Jan..Dec) |
%c | Month, numeric (0..12) |
%D | Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) |
%d | Day of the month, numeric (00..31) |
%e | Day of the month, numeric (0..31) |
%f | Microseconds (000000..999999) |
%H | Hour (00..23) |
%h | Hour (01..12) |
%I | Hour (01..12) |
%i | Minutes, numeric (00..59) |
%j | Day of year (001..366) |
%k | Hour (0..23) |
%l | Hour (1..12) |
%M | Month name (January..December) |
%m | Month, numeric (00..12) |
%p | AM or PM |
%r | Time, 12-hour (hh:mm:ss followed by AM or PM) |
%S | Seconds (00..59) |
%s | Seconds (00..59) |
%T | Time, 24-hour (hh:mm:ss) |
%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; used with %V |
%x | Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
%Y | Year, numeric, four digits |
%y | Year, numeric (two digits) |
%% | A literal % character |
Note that you also can use the combination of format values.
DATE_FORMAT() Examples
Example 1
The following statement formats a date:
SELECT DATE_FORMAT('2019-10-04 20:45:20', '%W %M %Y') AS FormattedDate;
Returned value:
FormattedDate |
Friday October 2019 |
Example 2
The following statement formats a date:
SELECT DATE_FORMAT('2019-10-08 19:34:30', '%H:%i:%s') AS FormattedHour;
Returned value:
FormattedHour |
19:34:30 |
Example 3
The following statement formats a date:
SELECT DATE_FORMAT('2019-10-09 23:30:00', '%W %D %M %Y %h:%i %p') AS FormattedDate;
Returned value:
FormattedDate |
Wednesday 9th October 2019 11:30 PM |
Example 4
The following statement formats a date:
SELECT DATE_FORMAT('2019-10-08 19:34:30', '%h:%i:%s %p') AS FormattedHour;
Returned value:
FormattedHour |
07:34:30 PM |
Example 5
The following statement formats a date:
SELECT DATE_FORMAT('2019-10-08 10:34:30', '%h:%i:%s %p') AS FormattedHour;
Returned value:
FormattedHour |
10:34:30 AM |
If you want to add and subtract date values, you can use the DATE_ADD() and DATE_SUB() functions.
In this tutorial, you've learned how to use the MySQL DATE_FORMAT() function. DATE_FORMAT() formats a date as specified.