example-DATE_FORMAT-function — php mysql examples | w3resource

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 цифр
Читайте также:  Метод splitlines python 3

Примечание

  • Дневной и месячный диапазоны начинаются с 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 DATE_FORMAT() Function - 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:

Pictorial Presentation of MySQL DATE_FORMAT() function

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)
         
query('SELECT DATE_FORMAT("2008-05-15 22:23:00", "%W %D %M %Y") as Calculated_Date') as $row) < echo ""; echo ""; echo ""; > ?>
Calculated date
" . $row['Calculated_Date'] . "
            Calculated date    %> catch (Exception ex) < out.println("Can’t connect to database."); >%>   

Example: DATE_FORMAT() function with (%r) specifier

The following statement will format the specified datetime 2008-05-15 22:23:00 according to the format specifier %r. Here the function returns the time in 12-hour format followed by AM or PM.

SELECT DATE_FORMAT('2008-05-15 22:23:00', '%r'); 

Sample Output:

mysql> SELECT DATE_FORMAT('2008-05-15 22:23:00', '%r'); +------------------------------------------+ | DATE_FORMAT('2008-05-15 22:23:00', '%r') | +------------------------------------------+ | 10:23:00 PM | +------------------------------------------+ 1 row in set (0.00 sec)
         
query('SELECT DATE_FORMAT("2008-05-15 22:23:00", "%r")') as $row) < echo ""; echo ""; echo ""; > ?>
Calculated date
" . $row['DATE_FORMAT("2008-05-15 22:23:00", "%r")'] . "

Example: DATE_FORMAT() function using table

The following statement will format the specified ‘ord_date’ column from purchase table according to the format specifier %W %D %M %Y and display all the rows.

SELECT invoice_no,ord_date, DATE_FORMAT(ord_date,'%W %D %M %Y') FROM purchase; 

Sample Output:

mysql> SELECT invoice_no,ord_date,DATE_FORMAT(ord_date,'%W %D %M %Y') -> FROM purchase; +------------+------------+-------------------------------------+ | invoice_no | ord_date | DATE_FORMAT(ord_date,'%W %D %M %Y') | +------------+------------+-------------------------------------+ | INV0001 | 2008-07-06 | Sunday 6th July 2008 | | INV0002 | 2008-08-09 | Saturday 9th August 2008 | | INV0003 | 2008-09-15 | Monday 15th September 2008 | | INV0004 | 2007-08-22 | Wednesday 22nd August 2007 | | INV0005 | 2007-06-25 | Monday 25th June 2007 | | INV0006 | 2007-09-20 | Thursday 20th September 2007 | +------------+------------+-------------------------------------+ 6 rows in set (0.09 sec)
         
query('SELECT invoice_no,ord_date, DATE_FORMAT(ord_date,"%W %D %M %Y") FROM purchase') as $row) < echo ""; echo ""; echo ""; echo ""; echo ""; > ?>
Invoice noOrder dateDATE_FORMAT(ord_date,'%W %D %M %Y')
" . $row['invoice_no'] . "" . $row['ord_date'] . "" . $row['DATE_FORMAT(ord_date,"%W %D %M %Y")'] . "

Example: DATE_FORMAT() function with where

The following statement will format the specified ‘ord_date’ column from purchase table according to the format specifier %W %D %M %Y and returns those orders which had been placed after 2007.

Sample table: purchase

SELECT invoice_no,ord_date, DATE_FORMAT(ord_date,'%W %D %M %Y') FROM purchase WHERE DATE_FORMAT(ord_date,' %Y')>2007; 

Sample Output:

mysql> SELECT invoice_no,ord_date, DATE_FORMAT(ord_date,'%W %D %M %Y') -> FROM purchase -> WHERE DATE_FORMAT(ord_date,' %Y')>2007; +------------+------------+-------------------------------------+ | invoice_no | ord_date | DATE_FORMAT(ord_date,'%W %D %M %Y') | +------------+------------+-------------------------------------+ | INV0001 | 2008-07-06 | Sunday 6th July 2008 | | INV0002 | 2008-08-09 | Saturday 9th August 2008 | | INV0003 | 2008-09-15 | Monday 15th September 2008 | +------------+------------+-------------------------------------+ 3 rows in set (0.01 sec)
         
query('SELECT invoice_no,ord_date, DATE_FORMAT(ord_date,"%W %D %M %Y") FROM purchase WHERE DATE_FORMAT(ord_date," %Y")>2007') as $row) < echo ""; echo ""; echo ""; echo ""; echo ""; > ?>
Invoice noOrder dateDATE_FORMAT(ord_date,'%W %D %M %Y')
" . $row['invoice_no'] . "" . $row['ord_date'] . "" . $row['DATE_FORMAT(ord_date,"%W %D %M %Y")'] . "

Online Practice Editor:

All Date and Time Functions :

Click here to see the MySQL Date and time functions.

Previous: DATE_ADD()
Next: DATE_SUB()

Follow us on Facebook and Twitter for latest update.

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook

Источник

Оцените статью