在对 q 和 kdb+ 的简要介绍中,有几个地方可以使用类似的代码创建时间记录0D00:01
。
甚至使用语法的随机时间生成技术:
n?0D0
fcn?0D00:00:20
我发现0D
仅在 q4m3 2.5.2 Time Types中提到可选。
code.kx 上是否对此语法有任何引用?还有其他有用的日期/时间随机生成器吗?我检查了大写字母, - 似乎0D
是唯一的,请参阅:q)@[value;;::] each ("0",/:.Q.A)
在对 q 和 kdb+ 的简要介绍中,有几个地方可以使用类似的代码创建时间记录0D00:01
。
甚至使用语法的随机时间生成技术:
n?0D0
fcn?0D00:00:20
我发现0D
仅在 q4m3 2.5.2 Time Types中提到可选。
code.kx 上是否对此语法有任何引用?还有其他有用的日期/时间随机生成器吗?我检查了大写字母, - 似乎0D
是唯一的,请参阅:q)@[value;;::] each ("0",/:.Q.A)
首先让我注意,0D...
语法并不特定于 rand 运算符。0D
当文字 kdb 的类型在没有它的情况下会与您的预期不同时,需要前缀。例如:
q)type 08:09:10.123 / time
-19h
q)type 0D08:09:10.123 / timespan
-16h
当可以明确推断出类型时,前缀是可选的;hh:mm:ss.nnnnnnnnn
在时间跨度文字的情况下,使用符号时在点之后提供超过 4 位就足够了:
q)type 08:09:10.123 / time
-19h
q)type 08:09:10.1234 / still time
-19h
q)type 08:09:10.12345 / timespan
-16h
0D
当您需要时间跨度值但又不想将所有详细信息指定为纳秒时,该表示法非常方便。我想你会同意0D00:01
(1 分钟)比00:01:00.000000000
.
回到您的问题,0D0
只是一个零值时间跨度,与00:00:00.00000000
. 但是,?
将其视为1D0
(或0D24:00:00.000000000
)已通过。我没有看到它在 code.kx.com 上的任何地方记录,但如果你考虑一下,你会同意在 [0; 范围内生成时间跨度;24h) 是一个非常常见的情况,它绝对值得一个捷径。你有它!