Interval 用法總結


語法:INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]

   該數據類型常用來表示一段時間差, 注意時間差只精確到年和月. precision為年或月的精確域, 有效范圍是0到9, 默認值為2.

用法:interval 得到的是一個時間間隔,是一種數據類型,可以直接與日期進行計算;

   eg> select sysdate - (interval '1' year) from dual;  (當前時間的前一年)

 1,Interval '11' year(n)

  -- 輸出結果為:+11-00 (表示11年0個月)

  n為年的精度,默認值為2,'integer' 中的integer位數不能大於n

2,interval '20' month(n)

  -- 輸出結果為:+01-08(1年8個月)

  n仍為年的精度,integer的值不能使輸出結果溢出(如:n=2輸出結果最大值為:+99-11,所以integer值不能大於1199(=99*12+11) )

3,interval '99-11' year(n) to month

  -- 輸出結果為:+99-11

  此處的格式必須是‘integer-integer’

4,interval '99' day(n)

  -- 輸出結果為:+99 00:00:00(99天0小時)

  n為天的精度,默認值為2

5,interval '90000' second(n)

  -- 輸出結果為:+01 01:00:00.000000(1天零1小時)

  n為秒的精度(小數點后的位數),默認值為6

6,interval '2 1:03:1' day(1) to second(3)

  -- 輸出結果為:+2 01:03:01.000

 

同類型的函數:NUMTODSINTERVAL/NUMTOYMINTERVAL

  1,NUMTODSINTERVAL(n, 'interval_unit')

     將n轉換成interval_unit所指定的值, interval_unit可以為: DAY, HOUR, MINUTE, SECOND
      注意該函數不可以轉換成YEAR和MONTH的.

    eg> select numtodsinterval(100, 'HOUR') from dual;

           -- 結果為:+000000004 04:00:00.000000000

  2,NUMTOYMINTERVAL(n, 'interval_unit')

     將n轉換成interval_unit所指定的值,interval_unit可以為: YEAR, MONTH

    eg> select numtoyminterval(100, 'MONTH') from dual;

      -- 結果為:+000000008-04

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM