2014-02-19 58 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