【发布时间】:2021-07-09 13:27:34
【问题描述】:
我有一个代表 UNIX 时间戳(纪元)的 BIGINT 值。如何将其转换为内置的 TIMESTAMP 类型?
例如,我想将 1611140400 转换为相关的日期和时间。 TIMESTAMP_FORMAT 不起作用。
【问题讨论】:
标签: db2 ibm-cloud epoch dashdb
我有一个代表 UNIX 时间戳(纪元)的 BIGINT 值。如何将其转换为内置的 TIMESTAMP 类型?
例如,我想将 1611140400 转换为相关的日期和时间。 TIMESTAMP_FORMAT 不起作用。
【问题讨论】:
标签: db2 ibm-cloud epoch dashdb
您可以在 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)
【讨论】:
VALUES TIMESTAMP(‘1970-01-01-00.00.00.000000’) + 1611140400 seconds + current timezone