4

是否有要转换TIMESTAMP为的 DB2 函数UTC milliseconds

4

2 回答 2

2

假设您要获取自纪元 (1970-01-01 00:00:00) 以来的毫秒数,则没有内置函数可以执行此操作。

然而,创建一个 UDF 是微不足道的,它可以:

CREATE OR REPLACE FUNCTION utcmillis (in db2ts timestamp)
   returns bigint
   language sql
   deterministic
   no external action
   return (
      bigint((days(db2ts - current timezone) - days('1970-01-01-00.00.00.000000')) * 86400 + midnight_seconds(db2ts - current timezone))*1000 + microsecond(db2ts)/1000
   );
于 2013-02-26T22:06:55.110 回答
0

您可以使用TIMESTAMPDIFF。像这样的东西:

TIMESTAMPDIFF(1,CHAR(timestampField -
    TIMESTAMP('1970-01-01-00.00.00.000000')))

假设您的意思是自 unix 纪元以来的毫秒数。我没有对此进行测试,您可能必须将值调整 10 倍,因为 db2 文档只说Fractions of a second

于 2013-02-26T16:41:42.867 回答