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

Set unix timestamp (int) as TIMESTAMP COLUMN in QuestDB

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

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

我在 SELECT 中试过这个:

cast(unixDate AS TIMESTAMP)

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

现在我使用了这个技巧:

dateadd('s', unixDate, to_timestamp('1970-01-01T00:00:00+0000', 'yyyy-MM-ddTHH:mm:ssZ'))

基本上是 January 1st, 1970 的 UTC 日期增加了 XXXXXXXXXX 秒。

实际上效果很好。

这看起来像秒精度。 QuestDb 时间戳以微秒为单位,此转换应该有效

cast(unixDate * 1000000L AS TIMESTAMP)