Получение текущего года в SQL Oracle для фильтрации данных
Быстрый ответ
Для того чтобы определить текущий год в Oracle, используйте функцию EXTRACT
:
SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;
Если вам необходимо строковое представление текущего года – воспользуйтесь функцией TO_CHAR
:
SELECT TO_CHAR(SYSDATE, 'YYYY') FROM dual;
Альтернативные подходы под микроскопом
Начало и конец: границы года
Если нужно определить первый день текущего года, выполните следующий запрос:
SELECT TRUNC(SYSDATE, 'YEAR') FROM dual;
А для определения последней секунды текущего года используйте выражение:
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), 12) – 1/24/60/60 FROM dual;
Фильтрация данных: выборка текущего года
Когда перед вами стоит задача фильтрации данных по текущему году, вы можете воспользоваться запросом:
SELECT *
FROM your_table
WHERE date_column BETWEEN TRUNC(SYSDATE, 'YEAR') AND ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), 12) – 1/24/60/60;
Работа с динамическими сравнениями годов
Для динамического сравнения по годам в SQL примените следующее выражение:
SELECT *
FROM your_table
WHERE EXTRACT(YEAR FROM date_column) = EXTRACT(YEAR FROM SYSDATE);
Визуализация
Визуализируем базу данных Oracle как календарь:
База данных в виде календаря (🗓️) | Запрос | Результат |
---|---|---|
Текущий год | SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; | 2023 (📅) |
Каждый поставленный запрос напоминает вопрос календарю: какой сейчас год? И получаем мы сразу же прямой ответ.
-- Все как бы обращаются к SQL-календарю:
🗓️, подскажите, пожалуйста, какой сейчас год?
-- И Oracle SQL не заставляет себя ждать:
📅 Сейчас 2023 год!
Дополнительные аспекты: освоение работы с датами
Больше, чем просто годы: изучаем компоненты даты
Может понадобиться обращение к другим составляющим даты для выполнения сложной фильтрации, например, к месяцу или дню:
SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual;
Мифическая таблица dual
Загадочная таблица dual
в Oracle гораздо упрощает выполнение таких операций:
SELECT SYSDATE FROM dual;
Изучая сообщество
Обмен опытом и получение обратной связи посредством голосования и рейтингов в сообществе нередко бывают чрезвычайно полезными и приводят к новым познаниям!
Полезные материалы
- EXTRACT (datetime) — официальная документация Oracle в части обсуждения функции EXTRACT.
- SYSDATE — база знаний Oracle, где подробно описывается использование функции SYSDATE.
- Oracle / PLSQL: EXTRACT Function — подробное руководство по работе с функцией EXTRACT в Oracle/PLSQL.
- sql – generate days from date range – Stack Overflow — полезные обсуждения и методики по работе с датами в Oracle SQL.
- Date Functions in SQL Server and MySQL — как находка для Алисы – учебник от W3Schools, затрагивающий вопросы по работе с функциями дат в SQL.