可以参考下述脚本,将不同品种的时间段用字典存储,然后在查询中过滤:
T = rand(24*60*60,100)$SECOND
sym = take(`a`b, 100)
val = rand(10.0, 100)
t = table(T, sym, val)
R=dict(`a`b, ([09:30:00:11:00:00,13:00:00:15:00:00], [08:30:00:10:00:00,14:00:00:16:00:00]))
def timeFilter(R, T, sym): any(T between:R R[sym])
re1= select * from t where each(timeFilter{R}, T, sym)
re2 = select * from t where (sym=`a and byRow(any, T between:R R[`a])) or (sym=`b and byRow(any, T between:R R[`b]))
eachRight(between, T, R[`a])
eqObj(re1.values(), re2.values())