Функция EXTRACT
Функция EXTRACT извлекает отдельные
части из даты или даты-времени.
Синтаксис
SELECT EXTRACT(unit FROM date_field) FROM table_name WHERE condition
Вместо 'unit' можно написать,
к примеру, DAY - тогда из даты будет
извлечен день, или, к примеру, YEAR
- тогда будет извлечен год. Если же написать
YEAR_MONTH - то будет извлечен
год и месяц (слитно, без разделителя).
Если требуется извлекать несколько частей
с разделителями - используйте
DATE_FORMAT.
Форматы извлечения
| Единица | Описание |
|---|---|
| SECOND | Секунды |
| MINUTE | Минуты |
| HOUR | Часы |
| DAY | День месяца |
| MONTH | Номер месяца |
| YEAR | Год |
| MINUTE_SECOND | Минуты и секунды |
| HOUR_MINUTE | Часы и минуты |
| DAY_HOUR | Дни и часы |
| YEAR_MONTH | Год и месяц (YYYYMM) |
| HOUR_SECOND | Часы, минуты и секунды |
| DAY_MINUTE | Дни, часы и минуты |
| DAY_SECOND | Дни, часы, минуты и секунды |
Таблицы для примеров
| id | name | date |
|---|---|---|
| 1 | user1 | 1988-03-01 |
| 2 | user2 | 1989-04-02 |
| 3 | user3 | 1990-05-03 |
Пример
Давайте при выборке из таблицы извлечём день месяца:
SELECT *, EXTRACT(DAY FROM date) AS day FROM users
Результат выполнения SQL запроса:
| id | name | date | day |
|---|---|---|---|
| 1 | user1 | 1988-03-01 | 1 |
| 2 | user2 | 1989-04-02 | 2 |
| 3 | user3 | 1990-05-03 | 3 |
Пример
Давайте при выборке из таблицы извлечём из даты год:
SELECT *, EXTRACT(YEAR FROM date) AS year FROM users
Результат выполнения SQL запроса:
| id | name | date | year |
|---|---|---|---|
| 1 | user1 | 1988-03-01 | 1988 |
| 2 | user2 | 1989-04-02 | 1989 |
| 3 | user3 | 1990-05-03 | 1990 |
Пример
Давайте при выборке из таблицы извлечём из даты год и месяц в слитном виде:
SELECT *, EXTRACT(YEAR_MONTH FROM date) AS yearmonth FROM users
Результат выполнения SQL запроса:
| id | name | date | yearmonth |
|---|---|---|---|
| 1 | user1 | 1988-03-01 | 198803 |
| 2 | user2 | 1989-04-02 | 198904 |
| 3 | user3 | 1990-05-03 | 199005 |