Найти в Дзене
Oracle Developer

Функция EXTRACT в Oracle SQL: Извлекаем дату по частям

Оглавление

Работа с датами в Oracle SQL — это не просто привычные sysdate и timestamp, а целый мир встроенных инструментов. Один из таких — функция EXTRACT, которая умеет доставать из даты или времени конкретные компоненты: год, месяц, день и даже минуты с секундами. 🚀

Как работает EXTRACT?

Допустим, у нас есть дата '2020-03-13'. Хотим узнать, какой это год:

Результат: 2020
SELECT EXTRACT(YEAR FROM DATE '2020-03-13') FROM dual;

А если нужен месяц? Не проблема:

Результат: 3
SELECT EXTRACT(MONTH FROM DATE '2020-03-13') FROM dual;

Теперь немного магии с текущей датой. Узнаем номер дня в месяце:

Результат: номер дня текущей даты
SELECT EXTRACT(DAY FROM SYSDATE) FROM dual;

И даже минуты можно извлечь:

Результат: 2
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2020-03-13 10:02:03') FROM dual;

🔍 Важно!
Из DATE можно извлекать только год, месяц и день. Чтобы работать с часами, минутами и секундами, нужен TIMESTAMP.

-2

Задача: Разложим дату на шесть частей

Представим, что нам нужно получить день, месяц, год, часы, минуты и секунды в числовом формате. Для этого используем TO_CHAR и TO_NUMBER:

SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) day,
TO_NUMBER(TO_CHAR(SYSDATE, 'MM')) month,
TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) year,
TO_NUMBER(TO_CHAR(SYSDATE, 'HH24')) hour,
TO_NUMBER(TO_CHAR(SYSDATE, 'MI')) min,
TO_NUMBER(TO_CHAR(SYSDATE, 'SS')) sec
FROM dual;

🔹 TO_CHAR(SYSDATE, 'DD') — достаём день в виде строки, затем превращаем в число через TO_NUMBER.
🔹 Аналогично поступаем с месяцем, годом, часами, минутами и секундами.

Что в итоге?

Этот способ наглядно показывает, как можно работать с датами и временем в Oracle SQL. Полезно экспериментировать с разными техниками — так находишь новые возможности. 😉

----------

Хотите разбираться в таких вещах на экспертном уровне? На нашем YouTube-канале мы регулярно разбираем подобные темы, а в Telegram-канале можно задать вопросы и пообщаться с коллегами! Присоединяйтесь! 💡

А еще в нашей онлайн-школе мы проводим обучение по направлениям:🔸PL/SQL; 🔸оптимизация Oracle SQL; 🔸секционирование; 🔸архитектуре СУБД; 🔸Unit-тестированию и др.

Работаем как с физическими так и с юридическими лицами. Напишите в
нашу поддержку или Денису напрямую. Всё официально с возможностью получить налоговый вычет, использовать мат капитал или другие плюшки.

Лицензия на дополнительное образование взрослых и детей Л035-01199-54/01691393 выдана 13.01.2025 г. Министерством образование Новосибирской области Российской Федерации

🔗 Полезные ссылки:

#oracle #plsql #sql #oracleDB #база_данных #программирование #it #разработка