select
to_char(sysdate interval '2' hour,'hh12:mi AM') as Time
from dual
我有一個查詢,將從當前的系統時間增加2個小時,但它可能增加或減少的時間,也是小時的值也將是動態的。 所以我必須使用運算子值,它可能是 或-,同樣,小時值可能是2、3、4或5,所以我的查詢將是
。select
to_char(sysdate :operator interval ':hourvalue' hour, 'hh12:mi AM') as Time
from dual
它給了我一個錯誤
ORA-00907: 缺少右括號
請幫助我,我使用的是oracle 11g
。uj5u.com熱心網友回復:
你不能有一個可變金額的INTERVAL字樣;但是,你可以有一個固定的INTERVAL字樣,然后將其乘以一個系結的變數:
SELECT TO_CHAR(
SYSDATE :hourvalue * INTERVAL '1'/span> HOUR,
'hh12:mi AM'/span>
) AS TIME 'hh12:mi AM' )
FROM DUAL
如果你想要一個負數,那么只要指定一個負數的:hourvalue,而不是使用一個單獨的:operator系結變數。
uj5u.com熱心網友回復:
你可以使用NUMTODSINTERVAL(n, 'hour')其中n也可以有一個負值。
例如
SELECT NUMTODSINTERVAL((-1)*10, 'hour') h FROM DUAL;
uj5u.com熱心網友回復:
只能使用系結變數作為引數,不能使用運算子作為系結變數。一個變通的方法是,對于負數,將間隔乘以1,對于正數,將間隔乘以1。
SELECT
編碼:TO_CHAR(
SYSDATE numtodsinterval((CASE WHEN : operator = '-'/span> THEN - 1 ELSE 1 END * : interval),'hour')。)
'hh12:mi AM')
) as time >。
FROM DUAL。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324980.html
標籤:
上一篇:Oracle/SQL/My-Sql查詢中的自定義列?
下一篇:在oracle中"_hash_join_enabled"的用途是什么?oracle如何在內部確定嵌套回圈和哈希連接優化器?
