Функция EXTRACT извлекает отдельные части из даты или даты-времени.

См. также функции DAY, MONTH, YEAR, HOUR, MINUTE, SECOND, DATE, DATE_FORMAT.

Синтаксис

SELECT EXTRACT(что_извлечь FROM дата) FROM имя_таблицы WHERE условие

Вместо 'что_извлечь' можно написать, к примеру, DAY - тогда из даты будет извлечен день, или, к примеру, YEAR - тогда будет извлечен год. Если же я напишу так: YEAR_MONTH - то будет извлечен год и месяц (слитно, без разделителя).

Если вам нужно извлекать несколько частей не слитно, а используя разделитель - используйте DATE_FORMAT.

Форматы вывода, которые допустимо использовать (см. примеры для понимания):

Формат Что извлечется
SECONDсекунды
MINUTEминуты
HOURчасы
DAYдни
MONTHмесяцы
YEARгода
MINUTE_SECONDминуты и секунды слитно
HOUR_MINUTEчасы и минуты слитно
DAY_HOURдни и часы слитно
YEAR_MONTHгода и месяцы слитно
HOUR_SECONDчасы, минуты, секунды слитно
DAY_MINUTEдни, часы, минуты слитно
DAY_SECONDдни, часы, минуты, секунды слитно

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
date
дата рождения
1 Дима 1988-03-01
2 Петя 1989-04-02
3 Вася 1990-05-03

Пример

В данном примере из даты извлекается день месяца:

SELECT *, EXTRACT(DAY FROM date) as day FROM workers

SQL запрос выберет следующие строки:

id
айди
name
имя
date
дата рождения
day
день
1 Дима 1988-03-01 1
2 Петя 1989-04-02 2
3 Вася 1990-05-03 3

Пример

В данном примере из даты извлекается год:

SELECT *, EXTRACT(YEAR FROM date) as year FROM workers

SQL запрос выберет следующие строки:

id
айди
name
имя
date
дата рождения
year
год
1 Дима 1988-03-01 1988
2 Петя 1989-04-02 1989
3 Вася 1990-05-03 1990

Пример

В данном примере из даты извлекается год и месяц (слитно):

SELECT *, EXTRACT(YEAR_MONTH FROM date) as yearmonth FROM workers

SQL запрос выберет следующие строки:

id
айди
name
имя
date
дата рождения
yearmonth
год и месяц
1 Дима 1988-03-01 198803
2 Петя 1989-04-02 198904
3 Вася 1990-05-03 199005