ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Получение текущего года в SQL Oracle для фильтрации данных

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы определить текущий год в Oracle, используйте функцию EXTRACT:

SQL
Скопировать код
SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;

Если вам необходимо строковое представление текущего года – воспользуйтесь функцией TO_CHAR:

SQL
Скопировать код
SELECT TO_CHAR(SYSDATE, 'YYYY') FROM dual;
Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Альтернативные подходы под микроскопом

Начало и конец: границы года

Если нужно определить первый день текущего года, выполните следующий запрос:

SQL
Скопировать код
SELECT TRUNC(SYSDATE, 'YEAR') FROM dual;

А для определения последней секунды текущего года используйте выражение:

SQL
Скопировать код
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), 12) – 1/24/60/60 FROM dual;

Фильтрация данных: выборка текущего года

Когда перед вами стоит задача фильтрации данных по текущему году, вы можете воспользоваться запросом:

SQL
Скопировать код
SELECT *
FROM your_table
WHERE date_column BETWEEN TRUNC(SYSDATE, 'YEAR') AND ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), 12) – 1/24/60/60;

Работа с динамическими сравнениями годов

Для динамического сравнения по годам в SQL примените следующее выражение:

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
Скопировать код
-- Все как бы обращаются к SQL-календарю:
🗓️, подскажите, пожалуйста, какой сейчас год?

-- И Oracle SQL не заставляет себя ждать:
📅 Сейчас 2023 год!

Дополнительные аспекты: освоение работы с датами

Больше, чем просто годы: изучаем компоненты даты

Может понадобиться обращение к другим составляющим даты для выполнения сложной фильтрации, например, к месяцу или дню:

SQL
Скопировать код
SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual;

Мифическая таблица dual

Загадочная таблица dual в Oracle гораздо упрощает выполнение таких операций:

SQL
Скопировать код
SELECT SYSDATE FROM dual;

Изучая сообщество

Обмен опытом и получение обратной связи посредством голосования и рейтингов в сообществе нередко бывают чрезвычайно полезными и приводят к новым познаниям!

Полезные материалы

  1. EXTRACT (datetime)официальная документация Oracle в части обсуждения функции EXTRACT.
  2. SYSDATEбаза знаний Oracle, где подробно описывается использование функции SYSDATE.
  3. Oracle / PLSQL: EXTRACT Function — подробное руководство по работе с функцией EXTRACT в Oracle/PLSQL.
  4. sql – generate days from date range – Stack Overflow — полезные обсуждения и методики по работе с датами в Oracle SQL.
  5. Date Functions in SQL Server and MySQL — как находка для Алисы – учебник от W3Schools, затрагивающий вопросы по работе с функциями дат в SQL.