A Table named TRADES has the following structure and Data:
CREATE TABLE trades (
trade_id NUMBER,
trade_execution_tmstmp TIMESTAMP(6),
time_zone_name VARCHAR2 (30 BYTE),
last_trade_marker TIMESTAMP(6)
);
Преобразования Timestamp из одного часового пояса в другой
trade_id -- Unique ID for every trade
trade_execution_tmstmp - время, когда торговля была выполнена в EST time_zone_name - местный часовой пояс для торговли last_trade_marker - время в EST для последняя сделка за определенный день
Требование выглядит следующим образом: Мне нужно разработать процедуру, которая вставляет следующий день в другую таблицу next_day_trades.
Если процедура запущена 2 января (в данном случае), будет торговля только 1 на следующий день с trade_id = 4. Итак, таблица next_day_trades будет иметь 1 запись.
Логика принятия решения о сделке на следующий день следующая: trade_execution_tmstmp находится в EST. Он должен быть преобразован в местную временную метку, чтобы увидеть, когда торговля была фактически выполнена на местном рынке. В этом случае Австралия/Сидней для всех сделок. last_trade_marker - это время последней торговли на этом рынке.
Ниже приводится описание 3-й и 4-й записей в таблице.
Торговля 3 выполнена на уровне «1/2/2015 1: 00: 00.000000 PM» (EST). Его эквивалент Австралии/Сиднее будет «1/3/2015 4: 00: 00.000000 AM» Последняя торговая марка за 2 января - «1/3/2015 2: 00: 00.000000 AM» Если сделка выполнена с 12:00 до 02:00 (последний торговый маркер), это будет торговля на следующий день. Итак, торговля 3 не является сделкой на следующий день.
Торговля 4 выполнена в '1/2/2015 10: 00: 00.000000 AM' (EST). Его эквивалент Австралии/Сиднее будет «1/3/2015 1: 00: 00.000000 AM» Последняя торговая марка для 2 января - «1/3/2015 2: 00: 00.000000 AM» Если сделка выполнена с 12:00 до 02:00 (последний торговый маркер), это будет торговля на следующий день. Итак, торговля 4 - это торговля на следующий день.
Примечание: На следующий день торги должны быть включены только для дня исполнения Хранимого Прока. Вот почему в таблицу next_day_trades вставляется только торговля 4, а не торговля 2, если Proc запущен 2 января.
Пожалуйста, помогите мне при поиске запроса SELECT для вставок.
Что означает «последний маркер торговли»? почему вы принимаете особенно 12-2.00 AM период? –
Последняя торговая марка - последний момент для торговли, которая будет включена для сегодняшней торговли. Я занимаю 12 - LTM, так как это деловая необходимость. Я также могу заменить это условие на trade_execution_tmstmp