Поиск данных в интервале времени. Oracle PL SQL date

Рейтинг: 0Ответов: 1Опубликовано: 18.01.2023

Есть две таблицы: Таблица А содержит в себе Имя, дату (с точностью до секунд) и номер. введите сюда описание изображения

Таблица B содержит в себе практически те же данные, с поправкой на колличество строк и данных в таблице Date.

введите сюда описание изображения

Необходимо для каждой строки из таблицы A применить следующий алгоритм действий:

Для каждой строки из таблицы А найти данные из таблицы B совпадающие по DATE и интервалом времени +- 15 минут. Например, мы ищем Для строки Alex с date 15.11.2022 18:01:48 данные из таблицы B с date от 15.11.2022 17:46:48 до 15.11.2022 18:16:48

Ответы

▲ 0Принят

При условии, что поля Date имеют тип TIMESTAMP.

SELECT * FROM tableA a
JOIN tableB b ON a.name=b.name 
    AND a.date BETWEEN b.date - 1 / 24 / 4 
                   AND b.date + 1 / 24 / 4

Если формат поля varchar2 то потребуется преобразование значений в тип даты to_date()

В Oracle с датой можно работать как с числом. 1 день это 1(единица). Для получения 15 минут, мы 1 делим на 24(часа), получаем 1 час, затем делим на 4, получаем 15 минут.