2014-02-13 72 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(含)的日期列表的魔力

相關問題