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

如何在KDB中使用日期和时间,kdb,Kdb,我试图通过从另一个日期时间跨度中减去一个日期时间跨度来使用dateDtimespan类型,但KDB QPad始终显示0,这是为什么 另外,如果一列中有datetime 12.11.2014:22:33:00.000000000,而另一列中只有time 22:32:00.000000000,我如何从第一列中删除日期部分以从第二列中减去时间部分?要删除日期,可以使用强制转换操作符$。要仅引用时间,您可以在$前面加上`time,如下所示 q).z.z 2015.02.23T14:10:33.523

我试图通过从另一个日期时间跨度中减去一个日期时间跨度来使用dateDtimespan类型,但KDB QPad始终显示0,这是为什么


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

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

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..

你可以在这里看到更多的例子

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

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..

你可以在这里看到更多的例子

我更喜欢先将时间戳向下转换为时间跨度,然后计算差异,即'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

我更喜欢先将时间戳向下转换为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