Функция EXTRACT
извлекает отдельные
части из даты или даты-времени.
Синтаксис
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 дни, часы, минуты, секунды
Таблицы для примеров
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
Результат выполнения кода:
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
Результат выполнения кода:
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
Результат выполнения кода:
id айди |
name имя |
date дата рождения |
yearmonth год и месяц |
---|---|---|---|
1 | user1 | 1988-03-01 | 198803 |
2 | user2 | 1989-04-02 | 198904 |
3 | user3 | 1990-05-03 | 199005 |