在 QuestDB 中将 unix 时间戳 (int) 设置为 TIMESTAMP COLUMN

时间:2021-03-06 02:47:45

标签: questdb

我创建了一个来自 CSV 上传的表,它具有 1613775600 形式的 unix 时间戳。在导入阶段,QuestDB 将其转换为 Int

如何将此字段设置为 TIMESTAMP 列?

我在 SELECT 中试过这个:

cast(unixDate AS TIMESTAMP)

但它没有正确解析 unix 日期,给出不一致的日期。

2 个答案:

答案 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 日期。

实际上效果很好。