【问题标题】:KDB: convert millisecond epoc to dateKDB:将毫秒纪元转换为日期
【发布时间】:2018-11-23 20:37:46
【问题描述】:

我有一个表 t,其中包含一个字符串列 tDate。

select tDate from t

tDate
----------
1542776400000
1542776400000
1542776400000
1542776400000
1542776400000
1542776400000
1540958400000
1542776400000
1542776400000
1542776400000
1542776400000

我想将其转换为 MM/dd/YYYY 格式的字符串。

但我需要删除最后 3 个字符,然后将其转换为日期。但不知何故,以下语句无法正常工作:

select "P"$-3_tDate from t

这是怎么回事,如何将其翻译成“MM/dd/YYYY”字符串。

【问题讨论】:

    标签: kdb


    【解决方案1】:

    我会这样处理:

    【讨论】:

      【解决方案2】:

      您需要先将long 值转换为string

      q)select `date$"P"$-3_/:string tDate from t
      tDate
      ----------
      2018.11.23
      2018.11.21
      2018.11.21
      

      可以通过以下方式将date 转换为“MM/dd/YYYY”格式:

      q)f:{ d:"." vs x; "/" sv (d 1;d 2;d 0)}
      q)select f each  string `date$"P"$-3_/:string tDate from t
      tDate
      ------------
      "11/23/2018"
      "11/21/2018"
      "11/21/2018"
      "11/21/2018"
      

      如果您对任何其他格式感兴趣,那么您必须操作字符串来定义自定义函数,例如上面的f

      或者你可以探索datetimeQ支持excel样式格式的GitHub库。

      例如

      q).dtf.format["d mmmm, dddd ,yyyy"; 2018.06.18];
      "18 June, Tuesday ,2018"
      

      【讨论】:

        猜你喜欢
        • 2015-07-07
        • 2013-11-11
        • 2020-12-04
        • 2012-03-08
        • 2019-12-24
        • 1970-01-01
        • 2016-11-25
        • 2014-03-14
        • 2020-05-05
        相关资源
        最近更新 更多