2014-02-19 30 views
1

我有一个包含日期的四列的csv文件。kdb Q从字符串的日期

开始日期,结束日期,ActionDate,MaturityDate 18/01/2013,18-01-2013,18-01-2013下午7时59分,18-01-2013 19:59

我加载此到表中:

myTable:("DDDD";enlist ",") 0: `$":/home/myuser/test.csv" 

我的表格头是可以的,但日期是空白的。我认为这是因为Q只能理解yyyy.mm.dd 不幸的是,我无法控制csv文件的格式。在将它加载到kdb之前,我可以用python脚本重新格式化它,但这是最好的方式吗?我可以在Q中以某种方式做到这一点,并将它们理解为日期?

感谢

+0

我知道我可以 切换格式\ Z 1 \ Z^0 或 q -z 1 加载将q会议,但我不希望切换它的一切,只是为了选择列。 – Eric

回答

1

当你躲避到您的意见,问题不在于Q无法解析由“/”分隔的日期,问题是,日期以日/月的格式,而不是月/日期。当使用正确的日期格式(\ z 0)时,它将适用于上面的3列,但它会以非24小时时间(例如AM/PM)下降。

如果每一列都是一致的,因为它总是月/日或日期/月,那么你可以通过临时设置\ z来添加一些逻辑来正确解析。您需要提前知道日期栏的格式并进行相应的解析。你可以添加逻辑来试图找出日期栏的格式,但是很可能会遇到一些问题。

对于上午/下午时间,您可以删除后缀。如果您确实需要日期时间,则可以使用“Z”进行解析,并在时间为PM时添加12:00:00。

+0

非常感谢! – Eric