2017-10-18 68 views
2

我想將毫秒添加到我的時間戳記對象。例如,我必須將時間戳值增加25毫秒。Oracle:將毫秒添加到我的時間戳記對象

我把這個作爲一個例子

select to_char(systimestamp,'dd-mm-yyyy hh24:mi:ss.FF') as ts 
, to_timestamp(to_char(sysdate,'dd-mm-yyyy hh24:mi:ss.')||to_char(to_number(to_char(systimestamp,'FF')) + 250) 
,'dd-mm-yyyy hh24:mi:ss.FF') as ts_1 
from dual; 

它的工作原理,並增加毫秒。但它不會影響秒數字段。例如,如果我們添加1000毫秒的編碼,理想情況下秒數字段應該增加。我們知道有一種方法可以將時間戳轉換爲毫秒。有沒有辦法將毫秒轉換回時間戳?或者,如果有什麼方法可以將毫秒添加到時間戳記對象,而該時間戳記對象確實反映了秒鐘記錄中的變化?

回答

4

您添加的時間到時間戳添加一個時間間隔。間隔可以僅下降到秒,但間隔0.001秒是一個毫秒間隔,您可以乘以所需的值。例如:

select systimestamp + interval '0.001' second * :millisecs from dual; 
2

使用的間隔文字:

SELECT SYSTIMESTAMP + INTERVAL '0.025' SECOND 
FROM DUAL 

或動態創建的間隔與NUMTODSINTERVAL

SELECT SYSTIMESTAMP + NUMTODSINTERVAL(25/1000, 'SECOND') 
FROM DUAL 

,或者用綁定變量:

SELECT SYSTIMESTAMP + NUMTODSINTERVAL(:milliseconds/1000, 'SECOND') 
FROM DUAL