我有一张表格tbl
,列datetime
的timestamp
格式为KDB ,看起来像2014.11.22D17:43:40.123456789
。我想将其转换为这样的Python日期时间格式,2014-11-22 17:43:40.123456789
但使用update
命令时遇到问题。
我了解可以执行此操作以投射时间戳:
q)`year`dd`mm`hh`uu`ss$2015.10.28D03:55:58 // this gives 2015 28 10 3 55 58i
我明白我可以创建一个新的列datetime2
从datetime
阅读它作为一个字符串,然后将其转换为整数在这种情况下:
q)update datetime2:"I"$string datetime from tbl
但是我很难同时投射和更新:
q)update datetime2:`year-`dd-`mm `hh:`uu:`ss$datetime from tbl
我得到的错误是:
evaluation error:
length
[0] update datetime2:`year-`dd-`mm `hh:`uu:`ss$datetime from tbl
^
谁能指出我正确的方向?谢谢。
Kdb没有其他显示时间戳的方法,获取所需内容的唯一方法是将时间戳记成字符串并操纵各个字符。就像是:
q)tbl:([]datetime:5#2014.11.22D17:43:40.123456789)
q)update{" "sv'(ssr[;".";"-"];::)@'/:"D"vs'string x}datetime from tbl
datetime
-------------------------------
"2014-11-22 17:43:40.123456789"
"2014-11-22 17:43:40.123456789"
"2014-11-22 17:43:40.123456789"
"2014-11-22 17:43:40.123456789"
"2014-11-22 17:43:40.123456789"
这纯粹是装饰性的,这些时间戳在时间序列意义上将不可用,但是也许适合您的目的。
您最终想解决什么问题?如果您尝试将数据传递给python,则最好使用基础数值并将数值转换回python的时间戳。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句