我目前只是提取时间戳前 1 分钟的所有记录(例如,如果我感兴趣的时间戳是 2014.04.14T09:30
):
select from Prices where timestamp within 2014.04.14T09:29 2014.04.14T09:30, stock=`GOOG
但是,这显然不是很稳健。有时,之前的记录可能位于 09:25am
,然后查询没有返回任何内容。有时,如果价格变化很大,查询可能会返回数百条记录,即使我只需要返回最后一条记录。
我知道这可以通过 asof 连接来完成,但暂时想避免它,因为 Prices
目前实在是太大了。
我也有兴趣做同样的事情,但我想找到给定时间戳之后的第一条记录。
另请注意,Prices
是一个展开 表
最佳答案
选择给定时间戳之前的最后一条记录:
q)select from Price where stock=`GOOG,i=last i,timestamp<2014.04.14T09:30
选择给定时间戳后的第一条记录:
q)select from Price where stock=`GOOG,i=first i,timestamp>2014.04.14T09:30
关于database - 如何在 KDB 中选择给定时间戳之前/之后的第一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23055509/