oracle中的INTERVAL函數詳解
INTERVAL YEAR TO MONTH數據類型
Oracle語法:
INTERVAL
該數據類型常用來表示一段時間差
eg:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示: 該處表示有錯誤
INTERVAL
INTERVAL
表示:
與該類型相關的函數:
NUMTODSINTERVAL(n
將n轉換成interval_unit所指定的值
注意該函數不可以轉換成YEAR和MONTH的
NUMTOYMINTERVAL(n
interval_unit可以為: YEAR
eg: (Oracle Version
SQL> select numtodsinterval(
NUMTODSINTERVAL(
+
SQL> c/DAY/SECOND
SQL> /
NUMTODSINTERVAL(
+
SQL> c/SECOND/MINUTE
SQL> /
NUMTODSINTERVAL(
+
SQL> c/MINUTE/HOUR
SQL> /
NUMTODSINTERVAL(
+
SQL> c/HOUR/YEAR
SQL> /
select numtodsinterval(
*
ERROR at line
ORA
SQL> select numtoyminterval(
NUMTOYMINTERVAL(
+
SQL> c/year/month
SQL> /
NUMTOYMINTERVAL(
+
時間的計算:
SQL> select to_date(
TO_DATE(
SQL> c/
SQL> /
TO_DATE(
SQL> c/
SQL> /
TO_DATE(
下面看看INTERVAL YEAR TO MONTH怎麼用
SQL> create table bb(a date
Table created
SQL> desc bb;
Name Null? Type
A DATE
B DATE
C INTERVAL YEAR(
SQL> insert into bb values(to_date(
SQL> select * from bb;
A B
C
SQL> update bb set c = numtoyminterval(a
SQL> select * from bb;
A B
C
+
SQL> select a
A
C
+
SQL> insert into bb values(null
SQL> select * from bb;
A B C
+
SQL> insert into bb values ( null
SQL> select * from bb;
A B C
+
+
========================
INTERVAL YEAR TO MONTH類型
SQL> ALTER TABLE TestTimeStamp ADD E INTERVAL YEAR TO MONTH;
SQL> update testTimeStamp set e=(select interval
已更新
SQL> commit;
提交完成
SQL> select dump(e
DUMP(E
Typ=
Typ=
Typ=
年
月
INTERVAL DAY TO SECOND數據類型
Oracle語法:
INTERVAL
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ]
leading_precision值的范圍是
該類型與INTERVAL YEAR TO MONTH有很多相似的地方
范圍值:
HOUR:
MINUTE:
SECOND:
eg:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
INTERVAL
表示:
==================
INTERVAL DAY TO SECOND類型存儲兩個TIMESTAMP之間的時間差異
l
l 小時
l
以下是一個例子
SQL> alter table testTimeStamp add f interval day to second ;
表已更改
SQL> update testTimeStamp set f=(select interval
已更新
SQL> commit;
提交完成
SQL> select dump(f
DUMP(F
Typ=
Typ=
Typ=
日期
小時
分鐘
秒鐘
秒鐘小數部分
From:http://tw.wingwit.com/Article/program/Oracle/201311/16710.html