2013-08-24 24 views
0

我想創建註銷時間會話超時如何將當前系統時間與整數值相加爲分鐘?

和我創建具有2輸入和1個輸出參數

輸入值的

一個是「系統時間」,而另一個值是數的過程,聲明爲 '分鐘'

這是我的查詢,但有問題,顯示此錯誤:

ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"

SQL:

SELECT to_char((to_date(sysdate,'HH24:MI:SS') + INTERVAL 40 MINUTE,'HH24:MI:SS') 
FROM dual; 

回答

0

你在問如何在日期上添加幾分鐘?

select sysdate + number_of_minutes/(24*60) from dual; 
2
  1. sysdate返回日期數據類型的值,所以沒有必要 明確轉換sysdate使用 to_date()功能日期數據類型。

  2. 如果您想僅爲sysdate返回的值添加幾分鐘,也不需要使用to_char()函數。

  3. INTERVAL 40 MINUTE結構字面分鐘必須用單引號引起來:INTERVAL '40' MINUTE

說了這麼多,你可以重寫查詢,如下所示:

SELECT sysdate + INTERVAL '40' MINUTE 
    FROM dual; 

在一個過程中,因爲您不能在INTERVAL <<variable>> MINUTE構造中包含變量,所以可以使用numtodsinterval()函數。

此外,爲了消除不必要的上下文切換,你可以做所有的計算,而不詢問dual表:

p_out_parameter := p_input_date + numtodsinterval(p_input_time, 'minute'); 
相關問題