Функция 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 |