如何将DB2 TIMESTAMP转换为UTC毫秒?

时间:2013-02-26 16:25:58

标签: sql db2

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

2 个答案:

答案 0 :(得分: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
   );

答案 1 :(得分:0)

您可以使用TIMESTAMPDIFF。像这样:

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

假设你的意思是unix epoch以来的毫秒数。我没有对此进行测试,您可能需要将该值调整10倍,因为db2文档仅显示第二个的分数。