点日记与日期

时间:2014-06-26 05:37:48

标签: kdb

我试图了解q如何定义日期的点表示法。

案例1:时间变量问题

对于前。如果我按照约会来约会:

q) d:2014.06.14

q) d.dd   
  14 i

但如果我尝试这样做而没有任何时间变量:

q) (2014.06.14).dd

 Error: .dd

问题为什么需要变量来应用点表示法。

案例2:内幕功能:

带日期的点表示法在函数内部不起作用。

q) {x.mm}[2014.01.01]

Error: x.mm

解决方案就是施放

q){`mm$x}[2014.01.01]  
  1i

问题:为什么时间变量属性在函数内部不起作用?

我想了解点表示法的行为。

3 个答案:

答案 0 :(得分:1)

点符号仅适用于具有"名称"在属于工作区树(以及qsql查询中的列)的意义上。从本质上讲,如果您无法成功说出get`a,那么您也无法说a.dd

答案 1 :(得分:0)

所有有效问题都有一些模糊的答案:)

案例1:时间变量问题/问题:为什么需要变量来应用点表示法。

点符号不是一种可以像其他语言一样使用的构造。这是一个快速的方法来获取写入编译器的日期的整数组件(即我怀疑编译器可能只是在寻找[日期]。而且没有更复杂的。)

案例2:内部函数/问题:为什么时态变量属性在函数内部不起作用?:

点符号并不意味着在函数内部使用。很长一段时间以来一直如此,虽然我从来没有听到过关于原因的合理解释。

答案 2 :(得分:0)

我记得在code.kx上的某处阅读:

http://code.kx.com/q4m3/2_Basic_Data_Types_Atoms/#257-constituents-and-dot-notation

  

高级: q中的一个怪癖是用于访问时态的点符号   成分不适用于函数参数。

我认为访问日期或时间变量的成分在局部变量VS全局变量中有其自身的局限性。