Db2:如何将 Unix/epoch 时间转换为时间戳?

Db2: How to convert Unix / epoch time to timestamp?

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

举个例子,我想把1611140400变成相关的日期和时间。 TIMESTAMP_FORMAT 无效。

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

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

纪元是格林威治标准时间/世界标准时间 1970 年 1 月 1 日以来的秒数。因此,将您的数字作为秒数添加到该日期将得到:

2021-01-20 11:00:00.0

如果您 运行 在不同的时区,则需要注意,例如:

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