Function 如何在Q/kdb中获取时间范围的数据?

Function 如何在Q/kdb中获取时间范围的数据?,function,time,kdb,q-lang,Function,Time,Kdb,Q Lang,我在q中有以下功能: { 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\

我在q中有以下功能:

{
    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\u 0s
等来创建一个新列
pnl
。如何修改此查询以通过时间范围
(firstdate;lastdate)

最佳答案取决于您的表。如果这是一个日期八字表,我想最好的地方是在getPnl函数中。大概是这样的:

select from aTable where date=x,....
替换为:

select from aTable where date within (d1;d2),...
对于日期八字表,当d1==d2时,“date=”vs“date within”没有命中

如果您无法访问此功能,很遗憾,您需要分别执行以下操作:

假设d1=2014.01.01,d2=2014.02.14

raze {[x] getPnl[`date`status!(x;`traded)]} each d1,d1+til 1+d2-d1
最后一位完成了创建从d1到d2(包括)的日期列表的神奇功能