【问题标题】:Redshift: milliseconds to timestampRedshift:毫秒到时间戳
【发布时间】:2019-08-05 13:40:55
【问题描述】:

假设我们有两个表:

CREATE TABLE IF NOT EXISTS tech_time(
    ms_since_epoch BIGINT
);

CREATE TABLE IF NOT EXISTS readable_time(
    ts timestamp without time zone,
);

假设tech_time 有数据,我们想填充readable_time

所以在 Postgres 中,您可以使用 to_timestamp(double precision) 并执行类似的操作

INSERT INTO readable_time(ts)
SELECT DISTINCT to_timestamp(ms_since_epoch::float / 1000) AS ts,
FROM tech_time;

Amazon Redshift 中似乎不存在这样的功能:

函数to_timestamp(双精度)不存在

我的问题是:如何正确填充 readable_time,同时损失最少的精度?

【问题讨论】:

    标签: type-conversion timestamp amazon-redshift


    【解决方案1】:

    我们可以尝试使用DATEADD 并将ms_since_epoch 添加到 1970 年 1 月 1 日:

    INSERT INTO readable_time (ts)
    SELECT DATEADD(ms, ms_since_epoch, '1970-01-01 00:00:00')
    FROM tech_time;
    

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 2016-06-05
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 2016-03-04
      • 2011-12-30
      相关资源
      最近更新 更多