ORACLE vs MS SQL Server. Рекурсивные запросы. Выводим даты текущего месяца / Илья Хохлов
Строковый фильтр времени событий
У нас есть таблица событий. Мы хотим выбирать события, фильтруя их по времени. Управлять фильтром хотим с помощью строки даты или диапазона дат. Постановка задачи Есть таблица или представление - в нем, конечно же, есть смысловая информация, но нам для рассуждений достаточно только первичного ключа и отметки времени.
..events_vi (id number primary key, date_created date, ...): select id, date_created
from events_vi
;
8123 18.03.2005 14:34:17
8124 18.03.2005 15:25:31
8125 18.03.2005 16:28:28
8126 21.03.2005 10:42:33.
.. Мы бы хотели управлять выборкой из этого представления при помощи строки, например, 18...
Функция EXTRACT в Oracle SQL: Извлекаем дату по частям
Работа с датами в Oracle SQL — это не просто привычные sysdate и timestamp, а целый мир встроенных инструментов. Один из таких — функция 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; Теперь немного магии с текущей датой...