【问题标题】:How to get epoch time in Redshift?如何在 Redshift 中获取纪元时间?
【发布时间】:2017-03-29 11:01:04
【问题描述】:

在我的架构中,我有一个 created_on 字段。我想在插入时自动为其分配 EPOCH 时间值。如何实现?

【问题讨论】:

    标签: sql database amazon-redshift


    【解决方案1】:
    select date_part(epoch,sysdate)::int
    

    如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

    【讨论】:

      【解决方案2】:

      在 PostgreSQL 上(从 redshift 被分叉)你会这样做:

      ALTER TABLE sometable ALTER COLUMN created_on SET DEFAULT EXTRACT(EPOCH FROM now())
      

      也许它也适用于红移。

      【讨论】:

      • 显然这是一个错误:ALTER COLUMN SET/DROP DEFAULT is not supported;我的桌子是空白的,所以我不介意从头开始创建一张。但是,EXTRACT 的列类型是 date_part。是否可以将其转换为整数?我使用纪元时间作为版本号。
      • 我认为 date_part 只是 EXTRACT() 函数结果的默认名称。根据文档,redshift 中的返回类型应该是整数:docs.aws.amazon.com/redshift/latest/dg/r_EXTRACT_function.html 它与 PostgreSQL 不同,在 PostgreSQL 中,返回类型是真实的。所以你不需要强制转换它。
      【解决方案3】:

      RedShift 没有 now() 但有 getdate(),所以这将是获取 epoch 的表达式:

      SELECT EXTRACT(EPOCH FROM GETDATE());
      

      【讨论】:

        【解决方案4】:
        SELECT EXTRACT(EPOCH FROM now());
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-10
          • 1970-01-01
          • 2022-12-16
          • 2018-01-17
          • 2014-09-25
          • 2016-06-15
          • 1970-01-01
          • 2013-08-15
          相关资源
          最近更新 更多