在 TimescaleDB 中保存 Javascript Date.now() 毫秒时间戳

Nyx*_*nyx 1 javascript sequelize.js timescaledb

我试图将 Javascript 生成的毫秒精度的 unix 时间戳存储Date.now()到 TimescaleDB 表中Data名为timestamptype的列下int8,或者DataTypes.BIGINT在使用 Javascript library 时Sequelize

问题1:int8/BIGINT推荐的类型来存储毫秒UNIX在时间戳?

问题 2:当我尝试使用以下方法创建 TimescaleDB 超表时:

SELECT create_hypertable('"Data"', 'timestamp', chunk_time_interval => interval '1 day');
Run Code Online (Sandbox Code Playgroud)

我收到错误消息

错误:无效间隔:整数维度必须是整数类型,时间:0.006000s

这是因为interval '1 day'不能与整数类型的列一起使用,而只能用于时间戳和日期类型吗?

Mik*_*man 5

(此处为时间标尺)

  1. 我们建议尽可能使用本机时间戳(带时区的时间戳)或时间戳格式,而不是整数。它是微秒精度,并且更容易与时区转换、使用时间戳的查询、now() 等一起使用。有一次这是不可能的,这是纳秒精度(需要一个 bigint),但这不适用于这里。

  2. 您在使用整数时间戳(而不是时间戳类型)时已经遇到问题。您设置chunk_time_interval为间隔类型,但您的列是整数。问题是我们不知道您的整数是否代表纳秒、秒、小时等,因此您不能使用诸如“1 天”之类的人类可读的东西。在这种情况下,如果您的时间列是毫秒,则需要指定 86400000。

但总的来说,如果可能的话,建议使用 timestamptz 类型。