0

セッションタイムアウトのログアウト時間を作りたい

そして、2 つの入力パラメーターと 1 つの出力パラメーターを持つプロシージャーを作成します。

入力値の 1 つは「システム時刻」であり、もう 1 つの値は「分」として宣言された数値です

これは私のクエリですが、問題があり、次のエラーが表示されます:

ORA-00907: 右括弧
がありません 00907. 00000 - "右括弧がありません"

SQL:

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

2 に答える 2

2
  1. sysdatesysdateは日付データ型の値を返すため、関数を使用して明示的に日付データ型 に変換する必要はありませんto_date()

  2. to_char()によって返される値に数分を追加するだけの場合も、関数を使用する必要はありませんsysdate

  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');  
于 2013-08-24T09:16:16.860 に答える
0

日付に分数を追加する方法を尋ねていますか?

select sysdate + number_of_minutes/(24*60) from dual;
于 2013-08-24T09:09:13.583 に答える