【问题标题】:Db2: How to convert Unix / epoch time to timestamp?Db2:如何将 Unix / 纪元时间转换为时间戳?
【发布时间】:2021-07-09 13:27:34
【问题描述】:

我有一个代表 UNIX 时间戳(纪元)的 BIGINT 值。如何将其转换为内置的 TIMESTAMP 类型?

例如,我想将 1611140400 转换为相关的日期和时间。 TIMESTAMP_FORMAT 不起作用。

【问题讨论】:

    标签: db2 ibm-cloud epoch dashdb


    【解决方案1】:

    您可以在 Db2 和 Db2 on Cloud 中使用 datetime arithmetics。对于 Db2 on Cloud(以 UTC 运行):

    VALUES (TIMESTAMP('1970-01-01') + 1611140400 seconds)
    

    Epoch 是自 1970 年 1 月 1 日 GMT / UTC 以来的秒数。因此,将您的数字作为秒数添加到该日期将给出:

    2021-01-20 11:00:00.0

    如果你在不同的时区运行,你需要照顾它,例如:

    VALUES (TIMESTAMP(‘1970-01-01-00.00.00.000000’) + 1611140400 seconds + current timezone)
    

    【讨论】:

    • Unix 纪元时间是自 1970-01-01 00:00:00 GMT 以来的秒数,因此在转换为本地时需要考虑这一点时间戳(除非您已经在 GMT):VALUES TIMESTAMP(‘1970-01-01-00.00.00.000000’) + 1611140400 seconds + current timezone
    • 添加了它,Db2 on Cloud 也是 UTC
    猜你喜欢
    • 2018-08-03
    • 2013-01-08
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2021-11-23
    • 2014-05-19
    相关资源
    最近更新 更多