2011-05-04 91 views
7

查詢:間隔功能

SELECT INTERVAL '300' month, 
     INTERVAL '54-2' year to month, 
     INTERVAL ' 11:12:10.1234567' hour to second 
    FROM DUAL; 

上述查詢的輸出是:

+25-00,+54-02,+00 11:12:10.1234567 

可有人請向我解釋如何查詢給這個輸出,並提供有關的解釋間隔函數?

+1

請參閱:http://askanantha.blogspot.com/2007/08/interval-datatypes-in-oracle.html – 2011-05-04 06:37:02

回答

10

INTERVAL不是函數它是引入了間隔字面並且這種表示數據類型關鍵字。類似於文字DATE '2011-05-04'TIMESTAMP '2011-05-04 17:18:19'正在做的事情。

詳細大約間隔文字
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00221
http://docs.oracle.com/cd/E11882_01/server.112/e41084/expressions009.htm#SQLRF52084

詳細關於間隔數據類型
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i128552

6

間隔是用於扣除或添加一個函數(天,年,月,小時,分鐘和秒)到指定日期。 區間'300'月份:25-0 原因:300/12(月份)給出的商數爲25,餘數爲0,因此輸出將爲25-0

區間'54 -2'年復一月: 54-2 原因:因爲您沒有提及它所提供的任何日期。 如果您使用 從雙重選擇sysdate + interval '54 -2'年復一年; 輸出將是:2066年1月12日

sydate:2012年1月10日 因此增加54至12 = 66 並加入2個月至辛這將是分解

和最後一個選項一樣。