2016-01-28 60 views

回答

3

如果你有自Unix紀元,使用:

select 
    {fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057, TIMESTAMP('1970-01-01-00.00.00.000000')) } as DT 
from sysibm.SYSDUMMY1 

只需用原始表替換 「SYSIBM.SYSDUMMY1」,並與您的值替換1453974057。

當毫秒處理它變得有點複雜,因爲你不能直接使用TIMESTAMPADD(你會看到SQL狀態22003:結果值是數據類型INTEGER的範圍之外)

如果您有毫秒自Unix紀元,使用方法:

select 
    --the following block converts milliseconds since linux epoch to a timestamp 
    { fn TIMESTAMPADD(
     SQL_TSI_FRAC_SECOND, 
     (
      --add the millisecond component 
      1453974057235 - { fn TIMESTAMPDIFF(
       SQL_TSI_SECOND, 
       TIMESTAMP('1970-01-01-00.00.00.000000'), 
       { fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057235/1000, TIMESTAMP('1970-01-01-00.00.00.000000')) } 
      )} * 1000 
     ) * 1000000, 
     { fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057235/1000, TIMESTAMP('1970-01-01-00.00.00.000000')) } 
    )} as FINAL_DT 
from SYSIBM.SYSDUMMY1 

只需用值替換1453974057235的3個實例。

相關問題