2

DB2 中是否有一个标量函数可以将长数字转换为 TIMESTAMP?

4

1 回答 1

6

正如@Dan1111 指出的那样;不,没有内置任何东西。

但是,如果你有一个“长”数字(我假设BIGINT),我猜你有 Unix 纪元(1970-01-01 00:00:00.000 UTC)的秒数(或类似) . 如果是这样,很容易“作弊”,您可以使用此逻辑编写自己的逻辑:

SELECT TIMESTAMP('1970-01-01', '00:00:00') + <your_column> SECONDS
FROM <your_table>

这当然假设该计数实际上来自 UTC(并且您计划将结果解释为这样),因为夏令时(和时区,在较小程度上)将事情搞砸了。


一个简单的例子:

SELECT TIMESTAMP('1970-01-01', '00:00:00') + 1348241581 SECONDS                                      
FROM sysibm/sysdummy1      

产生预期:

2012-09-21-15.33.01.000000

(格林威治标准时间,显然)

于 2012-09-21T15:36:23.647 回答