我在kdb / q中有一个函数声明:
q)func_demo:{[time1;time2] select from t where time within(time1 time2)}
其中time的数据类型为 v
. 并且查询完美无缺 .
我把两次进入函数:
q)func_demo[13:00:00 13:00:02]
但是在控制台中没有显示表格,它给了我类似的东西:
{[time1;time2] select from tt where tp_time within(time1 time2)}[13:00:00 13:00:02]
有人能给我一些提示如何处理这个问题吗?是因为我传入参数时不将 13:00:00
转换为'v'类型?
非常感谢!
2 回答
您需要传递@ emc211建议的参数;但是你正在使用的功能有问题
(time1 time2)
它应该是
(time1;time2)
-time1
之后的分号(;
)说明:
这类似于
time1@time2
要使用
time1
和time2
作为列表:如果您使用的是实际值,则无需为类似类型的元素指定
;
.你的函数在你的行
q)func_demo[13:00:00 13:00:02]
中有两个参数time1和time2你只传递一个参数,它是一个时间列表 .你的意思是通过
q)func_demo[13:00:00;13:00:02]
你得到的回报实际上是函数投影 . 代码如下解释