我创建了一个来自 CSV 上传的表,它具有 1613775600
形式的 unix 时间戳。在导入阶段,QuestDB 将其转换为 Int
。
如何将此字段设置为 TIMESTAMP
列?
我在 SELECT 中试过这个:
cast(unixDate AS TIMESTAMP)
但它没有正确解析 unix 日期,给出不一致的日期。
答案 0 :(得分:2)
这看起来像秒精度。 QuestDb 时间戳以微秒为单位,这个转换应该可以工作
cast(unixDate * 1000000L AS TIMESTAMP)
答案 1 :(得分:1)
现在我使用了这个技巧:
dateadd('s', unixDate, to_timestamp('1970-01-01T00:00:00+0000', 'yyyy-MM-ddTHH:mm:ssZ'))
基本上将 XXXXXXXXXX
秒添加到 January 1st, 1970
的 UTC 日期。
实际上效果很好。