如何在KDB中使用日期和时间

时间:2015-02-23 13:54:03

标签: kdb

我尝试使用dateDtimespan类型从另一个dateDtimespan减去{,}但是KDB(QPad)总是显示0,为什么?

另外,如果我在一列中datetime 12.11.2014:22:33:00.000000000而在另一列中只有22:32:00.000000000,那么我如何从第一列中删除日期部分以从第二列中减去时间部分?

2 个答案:

答案 0 :(得分:4)

要删除日期,您可以使用强制转换操作符 $ 。要仅引用时间,您可以在$前加上时间,如下所示。

q).z.z
2015.02.23T14:10:33.523

q)`time$.z.z
14:10:30.731

q)t:([]ts:10#.z.N;ti:.z.t-til 10)

q)exec `time$ts-ti from t

00:00:00.000 00:00:00.001 00:00:00.002 00:00:00.003 00:00:00.004 00:00:00.005..

您可以在此处查看更多示例。 http://code.kx.com/q/ref/casting/#cast

答案 1 :(得分:0)

我更喜欢先将timestamp下放到timespan,然后再计算差异,即(`timespan$p)-n。使用其他方式(`timespan$p-n)并没有什么害处,但是它比前一种方式更不明确。

q)dt:( [] p:2#2014.12.11D22:33:00.000000000;n:2#22:32:00.000000000)
q)select (`timespan$p)-n from dt
p
--------------------
0D00:01:00.000000000
0D00:01:00.000000000