Функция DATE_FORMAT преобразует дату из формата год-месяц-день или формата год-месяц-день часы:минуты:секунды в другой удобный нам формат.
К примеру, из год-месяц-день можно сделать день.месяц.год или месяц--год
См. также функцию TIME_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'. |
%% | Символ `%'. |
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
id айди |
name имя |
date дата регистрации |
---|---|---|
1 | Дима | 2010-03-01 12:01:02 |
2 | Петя | 2011-04-02 13:02:03 |
3 | Вася | 2012-05-03 14:03:04 |
Пример
В данном примере при выборке создается новое поле, в котором будет лежать дата в другом формате:
SELECT *, DATE_FORMAT(date, '%d.%m.%Y') as new_date FROM workers
SQL запрос выберет следующие строки:
id айди |
name имя |
date дата регистрации |
new_date дата в новом формате |
---|---|---|---|
1 | Дима | 2010-03-01 12:01:02 | 01.03.2010 |
2 | Петя | 2011-04-02 13:02:03 | 02.04.2011 |
3 | Вася | 2012-05-03 14:03:04 | 03.05.2012 |