# Функция DATE_FORMAT

Функция `DATE_FORMAT` преобразует дату из формата год-месяц-день или формата год-месяц-день часы:минуты:секунды в другой удобный нам формат.

## Синтаксис

`SELECT DATE_FORMAT(дата, формат) FROM имя_таблицы WHERE условие`

## Команды

Команда | Описание
--- | ---
%d | День месяца, число от `00` до `31`.
%e | День месяца, число от `0` до `31`.
%m | Месяц, число от `01` до `12`.
%c | Месяц, число от `1` до `12`.
%Y | Год, число, `4` цифры.
%y | Год, число, `2` цифры.
%j | День года, число от `001` до `366`.
%H | Час, число от `00` до `23`.
%k | Час, число от `0` до `23`.
%h | Час, число от `01` до `12`.
%I | Час, число от `01` до `12`.
%l | Час, число от `1` до `12`.
%i | Минуты, число от `00` до `59`.
%S | Секунды, число от `00` до `59`.
%s | Секунды, число от `00` до `59`.
%w | День недели (0 - воскресенье, 1 - понедельник).
%W | Название дня недели по-английски.
%a | Сокращенный день недели по-английски.
%M | Название месяца по-английски.
%b | Сокращенный месяц по-английски.
%D | День месяца с английским суффиксом (1st, 2nd, 3rd и т.д.).
%r | Время, `12`-часовой формат (hh:mm:ss [AP]M).
%T | Время, `24`-часовой формат (hh:mm:ss).
%p | AM или PM.
%U | Неделя, где воскресенье считается первым днем недели, число от `00` до `53`.
%u | Неделя, где понедельник считается первым днем недели, число от `00` до `53`.
%V | Неделя, где воскресенье считается первым днем недели, число от `01` до `53`. Используется с `%X'.
%v | Неделя, где понедельник считается первым днем недели, число от `01` до `53`. Используется с `%x'.
%X | Год для недели, где воскресенье считается первым днем недели, число, `4` цифры. Используется с `'%V'`.
%x | Год для недели, где воскресенье считается первым днем недели, число, `4` разряда. Используется с `'%v'`.
%% | Символ `%'.

## Таблицы для примеров

таблица employees
id айди | name имя | date дата регистрации
--- | --- | ---
1 | user1 | 2010-03-01 12:01:02
2 | user2 | 2011-04-02 13:02:03
3 | user3 | 2012-05-03 14:03:04

## Пример

В данном примере при выборке создается новое поле, в котором будет лежать дата в другом формате:

`SELECT *, DATE_FORMAT(date, '%d.%m.%Y') as new_date FROM employees`

Результат выполнения кода:

id айди | name имя | date дата регистрации | new_date дата в новом формате
--- | --- | --- | ---
1 | user1 | 2010-03-01 12:01:02 | 01.03.2010
2 | user2 | 2011-04-02 13:02:03 | 02.04.2011
3 | user3 | 2012-05-03 14:03:04 | 03.05.2012

## Смотрите также

- функцию `TIME_FORMAT`,
  которая меняет формат вывода времени

←→
↑