gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:17:48 25 4
gpt4 key购买 nike

我正在尝试将从 Javascript 的 Date.now() 生成的毫秒精度的 unix 时间戳存储到名为 Data 的列下的 TimescaleDB 表 timestamp ,类型为 int8 ,或使用 Javascript 库 DataTypes.BIGINT 时的 Sequelize

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

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

SELECT create_hypertable('"Data"', 'timestamp', chunk_time_interval => interval '1 day');

我收到错误消息

ERROR: invalid interval: must be an integer type for integer dimensions , Time: 0.006000s



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

最佳答案

(此处为时间标尺)

  • 我们建议尽可能使用 native timestamptz(带时区的时间戳)或时间戳格式,而不是整数。它是微秒精度,并且更容易与时区转换、使用时间戳的查询、now() 等一起使用。有一次这是不可能的,这是纳秒精度(需要一个 bigint),但这不适用于这里。
  • 您在使用整数时间戳(而不是时间戳类型)时已经遇到问题。您将 chunk_time_interval 设置为间隔类型,但您的列是整数。问题是我们不知道您的整数是否代表纳秒、秒、小时等,因此您不能使用诸如“1 天”之类的人类可读的东西。在这种情况下,如果您的时间列是毫秒,则需要指定 86400000。

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

    关于javascript - 在 TimescaleDB 中保存 Javascript Date.now() 毫秒时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59480852/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com