当前位置:   article > 正文

oracle中的INTERVAL函数学习总结

oracle中的INTERVAL函数学习总结

       Oracle 从9i数据库开始引入了一种新特性,可以用来存储时间间隔,出现了INTERVAL 函数。这个函数的表达式比较多,初学比较费劲不好掌握,经过以几个小时的查阅资料和实验,总结如下:
           interval year to month 类型:
格式: INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]
该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2。
           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
SECOND: 0 to 59

实验结果备注如下,下面用sql和备注很清晰简洁的表达很容易熟悉各个表达式的作用:

  1. select
  2. INTERVAL '12' YEAR 年, --只能整数--默认精度两位数,范围为0~9
  3. INTERVAL '123' YEAR(3) 年, --超过2位要指定精度
  4. INTERVAL '1' YEAR 年,
  5. INTERVAL '-12' YEAR 年,
  6. INTERVAL '-12' MONTH 月,--只能整数--默认精度两位数--默认精度是3位
  7. INTERVAL '-11' MONTH 月,
  8. INTERVAL '-2' MONTH 月,
  9. INTERVAL '12' MONTH 月,
  10. INTERVAL '11' MONTH 月,
  11. INTERVAL '123' MONTH 月,--默认精度是3位,范围为0~9
  12. INTERVAL '-123456' MONTH(5) 月,--超过3位要指定精度
  13. INTERVAL '12' DAY 天, --只能整数--默认精度两位数,范围为0~9
  14. INTERVAL '-12' DAY 天,
  15. INTERVAL '123' DAY(3) 天, --超过2位要指定精度
  16. INTERVAL '-1234' HOUR 小时, --只能整数---默认精度是4位,范围为0~9
  17. INTERVAL '12345' HOUR(5) 小时, --超过4位要指定精度
  18. INTERVAL '-13245' MINUTE 分钟, --只能整数---默认5位,范围为0~9
  19. INTERVAL '1234567' MINUTE(7) 分钟, --超过5位要指定精度
  20. INTERVAL '-1234567' second 秒, --秒,可以带小数,默认7位,范围为0~9
  21. INTERVAL '12345678.23' second(8) 秒, --超过7位要指定精度
  22. INTERVAL '123-2' YEAR(3) TO MONTH 年到月, --表示: 123年2个月, "YEAR(3)" 表示年的精度为3, 可见"123"刚好为3为有效数值, 如果该处YEAR(n), n<3就会出错, 注意默认是2
  23. INTERVAL '0 12' DAY TO HOUR 天和小时, --0天12小时,不能有小数
  24. INTERVAL '1 12:23' DAY TO minute 天到分钟, --0天12小时23分,不能有小数
  25. INTERVAL '2 12:23:12' DAY TO SECOND 天到秒, --0天12小时23分12秒,可以有小数
  26. INTERVAL '4 5:12:10.222' DAY TO SECOND(3) 天到秒小数,
  27. --INTERVAL '11:60' HOUR TO MINUTE,
  28. INTERVAL '2:59' HOUR TO MINUTE 时到分, --转换到哪一级,字符串里的表达式就要写到那级,不能有小数
  29. --INTERVAL '12:00' HOUR TO SECOND ,
  30. INTERVAL '12:01:01' HOUR TO SECOND 时分秒,
  31. INTERVAL '12:01:00.1234567' HOUR TO SECOND 时分秒小数, --默认小数是6位,最后一位会四舍五入
  32. INTERVAL '11:12:10.1234567' HOUR TO SECOND(7) 时分秒7位, --指定7为小数后可以呈现7位
  33. INTERVAL '23:12' MINUTE TO SECOND 分钟到秒,
  34. INTERVAL '23:12.22' MINUTE TO SECOND 分钟到秒小数
  35. from dual;
  36. select INTERVAL '123' YEAR  from dual; --执行错误,year默认精度是2,但是123是3位。
  37. select INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH from dual; --表示: 5年3个月 + 20个月 = 6年11个月
  38. select INTERVAL '12345' HOUR(9) 小时,INTERVAL '1234567' MINUTE(9) 分钟,INTERVAL '12345678.23' second(9) 秒
  39. from dual

通过上面的SQL,可以很容易看出各个级别的表达式的规律。分享给各位程序开发人员。

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

闽ICP备14008679号