MySQL функция DATE_FORMAT
MySQL функция DATE_FORMAT форматирует дату по заданной маске.
Синтаксис
Синтаксис MySQL функции DATE_FORMAT:
Параметры или аргументы
date — дата для форматирования.
format_mask — формат, который необходимо применить к дате. Ниже приведен список опций для параметра format_mask . Эти параметры могут использоваться во многих комбинациях.
Значение | Описание |
---|---|
%a | Сокращенное название дня недели (Sun до Sat) |
%b | Сокращенное название месяца (Jan до Dec) |
%c | Числовое значение месяца (0 до 12) |
%D | День месяца в виде числового значения, за которым следует суффикс (1st, 2nd, 3rd, . ) |
%d | День месяца в виде числового значения (от 01 до 31) |
%e | День месяца в виде числового значения (от 0 до 31) |
%f | Микросекунды (от 000000 до 999999) %f доступны начиная с MySQL 4.1.1 |
%H | Час (от 00 до 23) |
%h | Час (от 00 до 12) |
%I | Час (от 00 до 12) |
%i | Минуты (от 00 до 59) |
%j | День года (001 — 366) |
%k | Час (от 00 до 23) |
%l | Час (от 1 до 12) |
%M | Название месяца полностью (January to December) |
%m | Название месяца в виде числового значения (от 00 до 12) |
%p | До или после полудня AM или PM |
%r | Время в 12-часовом формате AM или PM (hh:mm:ss AM/PM) |
%S | Секунды (от 00 до 59) |
%s | Секунды (от 00 до 59) |
%T | Время в 24-часовом формате (hh:mm:ss) |
%U | Неделя, где Sunday — первый день недели (от 00 до 53) |
%u | Неделя, где Monday — это первый день недели (от 00 до 53) |
%V | Неделя, где Sunday — первый день недели (от 01 до 53). Доступно начиная с версии MySQL 3.23.8 и используется с %X |
%v | Неделя, где Monday — первый день недели (от 01 до 53). Доступно начиная с версии MySQL 3.23.8 и используется с %X |
%W | Имя дня недели полностью (Sunday to Saturday) |
%w | День недели, где Sunday=0 and Saturday=6 |
%X | Год недели, где Sunday — первый день недели. Доступно начиная с версии MySQL 3.23.8 и используется с% V |
%x | Год недели, где Monday — первый день недели. Доступно начиная с MySQL 3.23.8 и используется с %v |
%Y | Год в виде числового значения из 4 цифр |
%y | Год в виде числового значения из 2 цифр |
Примечание
- Дневной и месячный диапазоны начинаются с 00, поскольку MySQL позволяет хранить даты неполными. Например: ‘2013-00-00’.
- См. также функцию TIME_FORMAT.
Применение
Функция DATE_FORMAT может использоваться в следующих версиях MySQL:
Пример
Рассмотрим примеры MySQL функции DATE_FORMAT, чтобы понять, как использовать функцию DATE_FORMAT в MySQL.
Например:
MySQL DATE_FORMAT() function
MySQL DATE_FORMAT() formats a date as specified in the argument. A list of format specifiers given bellow may be used to format a date. The ‘%’ is required before the format specifier characters.
Syntax Diagram:
MySQL Version: 5.6
Table of format specifiers
Name | 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 |
%u | Week (00..53), where Monday is the first day of the week |
%V | Week (01..53), where Sunday is the first day of the week; used with %X |
%v | Week (01..53), where Monday is the first day of the week; 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 |
%x | x, for any “x” not listed above |
Video Presentation:
Your browser does not support HTML5 video.
Pictorial Presentation:
Example: MySQL DATE_FORMAT() function
select date_format(date, '%a %D %b %Y') as formatted_date from table_name;
Where date is the name of your date field, and formatted_date is a column alias which you can use as a column heading.
Example Date: 11th February 2011 Replace date with the name of your date field. | |
date_format String | Example |
---|---|
‘%Y-%m-%d’ | 2011-02-11 |
‘%e/%c/%Y’ | 11/2/2011 UK |
‘%c/%e/%Y’ | 2/11/2011 US |
‘%d/%m/%Y’ | 11/02/2011 UK |
‘%m/%d/%Y’ | 02/11/2011 US |
‘%e/%c/%Y %H:%i’ | 11/2/2011 12:30 UK |
‘%c/%e/%Y %H:%i’ | 2/11/2011 12:30 US |
‘%d/%m/%Y %H:%i’ | 11/02/2011 12:30 UK |
‘%m/%d/%Y %H:%i’ | 02/11/2011 12:30 US |
‘%e/%c/%Y %T’ | 11/2/2011 12:30:10 UK |
‘%c/%e/%Y %T’ | 2/11/2011 12:30:10 US |
‘%d/%m/%Y %T’ | 11/02/2011 12:30:10 UK |
‘%m/%d/%Y %T’ | 02/11/2011 12:30:10 US |
‘%a %D %b %Y’ | Fri 11th Feb 2011 |
‘%a %D %b %Y %H:%i’ | Fri 11th Feb 2011 12:30 |
‘%a %D %b %Y %T’ | Fri 11th Feb 2011 12:30:10 |
‘%a %b %e %Y’ | Fri Feb 11 2011 |
‘%a %b %e %Y %H:%i’ | Fri Feb 11 2011 12:30 |
‘%a %b %e %Y %T’ | Fri Feb 11 2011 12:30:10 |
‘%W %D %M %Y’ | Friday 11th February 2011 |
‘%W %D %M %Y %H:%i’ | Friday 11th February 2011 12:30 |
‘%W %D %M %Y %T’ | Friday 11th February 2011 12:30:10 |
‘%l:%i %p %b %e, %Y’ | 12:30 PM Feb 11, 2011 |
‘%M %e, %Y’ | February 11, 2011 |
The following statement will format the specified datetime 2008-05-15 22:23:00 according to the format specifier %W %D %M %Y. Here date has been formatted with week day name, day of the month with english suffix, month name and year in numeric.
SELECT DATE_FORMAT('2008-05-15 22:23:00', '%W %D %M %Y');
Sample Output:
mysql> SELECT DATE_FORMAT('2008-05-15 22:23:00', '%W %D %M %Y'); +---------------------------------------------------+ | DATE_FORMAT('2008-05-15 22:23:00', '%W %D %M %Y') | +---------------------------------------------------+ | Thursday 15th May 2008 | +---------------------------------------------------+ 1 row in set (0.01 sec)
Calculated date query('SELECT DATE_FORMAT("2008-05-15 22:23:00", "%W %D %M %Y") as Calculated_Date') as $row) < echo ""; echo "" . $row['Calculated_Date'] . " "; echo " "; > ?>