当前位置:   article > 正文

oracle 中的INTERVAL 函数用法

oracle interval函数

 
  
 
  
		
			
一、interval year to month 类型
格式: INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]
该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2
案例1
select INTERVAL '123-2' YEAR(3) TO MONTH from dual;
表示: 123年2个月, "YEAR(3)" 表示年的精度为3, 可见"123"刚好为3为有效数值, 如果该处YEAR(n), n<3就会出错, 注意默认是2
案例2:
 select INTERVAL '123' YEAR(3)   from dual; --表示: 123年0个月
案例3:
select interval '300' month from dual; --表示 300月,一年12月,自动换算成25年,如下
案例4:
select INTERVAL '123' YEAR  from dual; --执行错误,year默认精度是2,但是123是3位。
案例5:
select INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH from dual;--表示: 5年3个月 + 20个月 = 6年11个月
二、inter day to second 类型
 格式:INTERVAL '{ integer | integer time_expr | time_expr }'   { { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] } [ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ]
leading_precision值的范围是0到9, 默认是2. time_expr的格式为:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n], n表示微秒
范围值: HOUR:    0 to 23
MINUTE: 0 to 59
999999999 
SECOND: 0 to 59
案例1:
 select INTERVAL '4 5:12:10.222' DAY TO SECOND(3) from dual;--表示4天5小时12分10.222秒
案例2:
 select  INTERVAL '4 5:12' DAY TO MINUTE from dual; --表示: 4天5小时12分
案例3:
 select   INTERVAL '400 5' DAY(3) TO HOUR from dual; --表示: 400天5小时, 400为3为精度,所以"DAY(3)", 注意默认值为2.
案例4:
 select INTERVAL '400' DAY(3) from dual;--表示400天
案例5:
 select INTERVAL '11:12:10.2222222' HOUR TO SECOND(7) from dual;--表示: 11小时12分10.2222222秒
案例6:
 select INTERVAL '11:20' HOUR TO MINUTE from dual; --表示11小时20分
  案例7:
        select  INTERVAL '30.12345' SECOND(2,4)  from dual; --表示: 30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22526482/viewspace-2122565/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22526482/viewspace-2122565/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/678511
推荐阅读
相关标签
  

闽ICP备14008679号