在 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)
我创建了一个来自 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)