如何将任意 unix 时间戳解析为 kdb 中的日期时间?
How does one parse an arbitrary unix timestamp to a datetime in kdb?
我正在尝试将 unix 时间戳,即 1618876798363946752(~2021 年 4 月)转换为 kdb/q 中相应的日期时间。我尝试使用以下功能。 (根据 this)
q)dt:{`datetime$(1970.01.01+0D00:00:00.001 * `long$x)};
然而它产生了错误的结果:
q)dt 1618876798363946752
2254.09.24T08:41:10.211
在 kdb+ 中将任意长度的 Unix 时间戳转换为其关联的 datetime
的一般经验法则和相关方法是什么?
感谢您的建议。
最好的问候
我稍微调整了@terrylynch 的答案 here 以考虑时间戳的完整精度。
q)`datetime70.01.01+0D00:00:00.000000001*1618876798363946752
2021.04.19T23:59:58.363
只是添加另一种转换方式:
q)`timestamp18876798363946752 + `long70.01.01D
2021.04.19D23:59:58.363946752
函数可以是
q)dt: {`timestamp$x + `long70.01.01D}
q)dt 1618876798363946752
2021.04.19D23:59:58.363946752
我正在尝试将 unix 时间戳,即 1618876798363946752(~2021 年 4 月)转换为 kdb/q 中相应的日期时间。我尝试使用以下功能。 (根据 this)
q)dt:{`datetime$(1970.01.01+0D00:00:00.001 * `long$x)};
然而它产生了错误的结果:
q)dt 1618876798363946752
2254.09.24T08:41:10.211
在 kdb+ 中将任意长度的 Unix 时间戳转换为其关联的 datetime
的一般经验法则和相关方法是什么?
感谢您的建议。 最好的问候
我稍微调整了@terrylynch 的答案 here 以考虑时间戳的完整精度。
q)`datetime70.01.01+0D00:00:00.000000001*1618876798363946752
2021.04.19T23:59:58.363
只是添加另一种转换方式:
q)`timestamp18876798363946752 + `long70.01.01D
2021.04.19D23:59:58.363946752
函数可以是
q)dt: {`timestamp$x + `long70.01.01D}
q)dt 1618876798363946752
2021.04.19D23:59:58.363946752