遵循查询标准,使用自定义时间跨度输入、开始日期和结束日期将分时数据转换为 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