Как лучше всего преобразовать данные о тиках в OHLC, используя ввод настраиваемого временного интервала, дату начала и дату окончания, в соответствии со стандартами запросов?
Хранимая процедура должна иметь 3 параметра для передачи:
- промежуток времени,
- дата начала и
- дата окончания.
Мне нужны два сценария (с хранимой процедурой для каждого): один без пропусков, когда нет записей между временным диапазоном, и второй с пропусками, когда нет записей между временным диапазоном.
Вот данные:
BigIntDateTime, DateTime, Ask, Bid
20000530171000000, 2000-05-30 17:10:00.000, 0.93020, 0.93970
20000530171010000, 2000-05-30 17:10:10.000, 0.98020, 0.98970
20000530171030000, 2000-05-30 17:10:30.000, 0.92020, 0.92970
20000530171040000, 2000-05-30 17:10:40.000, 0.9020, 0.90970
20000530171336000, 2000-05-30 17:13:36.000, 0.93020, 0.93970
Временной интервал: 1 мин.
Выход для первого сценария
- промежуток времени: 1мин
- дата начала: 2000-05-30 17: 10: 00.000
- дата окончания: 2000-05-30 17: 13: 36.000
Time, OpenAsk, HighAsk, LowAsk, CloseAsk, OpenBid, HighBid, LowBid, CloseBid
2000-05-30 17:10:00.000, 0.93020, 0.98020, 0.90200, 0.90200, 0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:13:36.000, 0.93020, 0.93020, 0.93020, 0.93020, 0.93970, 0.93970, 0.93970, 0.93970
Выход для второго сценария
- промежуток времени: 1мин
- дата начала: 2000-05-30 17: 10: 00.000
- дата окончания: 2000-05-30 17: 13: 36.000
Time, OpenAsk, HighAsk, LowAsk, CloseAsk, OpenBid, HighBid, LowBid, CloseBid
2000-05-30 17:10:00.000, 0.93020, 0.98020, 0.90200, 0.90200, 0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:11:00.000, 0.93020, 0.98020, 0.90200, 0.90200, 0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:12:00.000, 0.93020, 0.98020, 0.90200, 0.90200, 0.93970, 0.98970, 0.90970, 0.90970
2000-05-30 17:13:36.000, 0.93020, 0.93020, 0.93020, 0.93020, 0.93970, 0.93970, 0.93970, 0.93970