2014-02-13 33 views
2

我在Q以下功能:如何在Q/kdb中获取时间范围内的数据?

{ 
    raze {[x] 
     update PnlTime:x from 
      flip ?[getPnl[`date`status!(2013.05.14;`traded)]; 
      ();();`date`Id`market`pnl!(`date;`Id;`market;x)] 
    } each `pnl_0s`pnl_1s`pnl_5s 
} 

在这里,我从功能getPnl特定日期检索数据,并通过加入pnl_0s等创建一个新的列pnl我怎么能修改此查询,以通过时间范围(firstdate;lastdate)

回答

3

最佳答案取决于你的表格。如果这是一个日期显示的表格,我会想象最好的地方是在getPnl函数中。据推测,它做的是这样的:

select from aTable where date=x,.... 

替换为:

select from aTable where date within (d1;d2),... 

对于日期张开表没有命中的“日期=”与当D1 D2 ==“中日”。

如果您没有访问该功能不幸的是你需要做其他每个,像这样:

说D1 = 2014年1月1日,D2 = 2014年2月14日

raze {[x] getPnl[`date`status!(x;`traded)]} each d1,d1+til 1+d2-d1 

最后一点创造了从d1到d2(含)的日期列表的魔力

相关问题