oracle中的INTERVAL函数用法

一、interval year to month 类型

格式:
该数据类型常用来表示一段时间差, 注意时间差只精确到年和月, precision为年或月的精确域, 有效范围是0到9, 默认值为2

[ ] 为可选项
|  表示任选其中一项
INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]

案例1:
表示123年2个月。“YEAR(3)” 表示年的精度为3, 如果YEAR(n), n<3就会报错,ORA-01873间隔的前导精度太小(注意默认是2)

select INTERVAL '123-2' YEAR(3) TO MONTH from dual;   +123-02

案例2:
如果前面没有写减号,可以省略后面的’TO {YEAR | MONTH}’,如果要写后面的必须跟前面的统一

select INTERVAL '12' YEAR from dual;   +12-00 --表示12年
select INTERVAL '12' YEAR TO YEAR from dual;   +12-00 --表示12年
select INTERVAL '9' MONTH from dual;   +00-09 --表示9个月
select INTERVAL '9' MONTH TO MONTH from dual;   +00-09 --表示9个月

案例3:
表示12个月,一年12月,自动换算成1年

select INTERVAL '12' MONTH from dual;   +01-00

案例4:
YEAR和MONTH的默认精度为2,MONTH 的精度是换算成年来看的

select INTERVAL '1200' MONTH from dual;   --ORA-01873间隔的前导精度太小
select INTERVAL '1200' MONTH(3) TO MONTH from dual;   +100-00
select INTERVAL '1199' MONTH from dual;   +99-11

案例5:

select INTERVAL '5-11' YEAR TO MONTH + INTERVAL '20' MONTH from dual;   +07-07 --表示 5年11个月+20个月=7年7个月
select sysdate - (INTERVAL '1' MONTH) from dual;    2021/2/9 13:14:44 --表示当前时间前一个月时间
二、interval day to second 类型

格式:
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.999999999
[ ] 为可选项
|  表示任选其中一项
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) ] } ]

案例1:

 select INTERVAL '5 5:20:12.15' DAY TO SECOND(3) from dual;   +05 05:20:12.150 --表示5天5小时20分12.150秒select INTERVAL '5 5:20:12.15' DAY TO SECOND(2) from dual;   +05 05:20:12.15 --表示5天5小时20分12.15秒

案例2:
表示5天5小时20分

select INTERVAL '5 5:20' DAY TO MINUTE from dual;   +05 05:20:00

案例3:
表示365天5小时, “DAY(3)” 表示天的精度为3, 如果DAY(n), n<3就会报错,ORA-01873间隔的前导精度太小(注意默认是2)

 select INTERVAL '365 5' DAY(3) TO HOUR from dual;   +365 05:00:00

案例4:
表示365天

select INTERVAL '365' DAY(3) from dual;   +365 00:00:00

案例5:
表示5小时20分12.15555秒

select INTERVAL '5:20:12.15555' HOUR TO SECOND(5) from dual;   +00 05:20:12.15555

案例6:
表示5小时20分

select INTERVAL '5:20' HOUR TO MINUTE from dual;   +00 05:20:00

案例7:

select  INTERVAL '30.12345' SECOND(4) from dual;   +0000 00:00:30.123450 --表示30.123450秒
select  INTERVAL '30.12345' SECOND(2,4) from dual;   +00 00:00:30.1235 --表示30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入

案例8:
表示1天,一天24小时,自动换算成1天

select INTERVAL '24' HOUR  from dual;   +01 00:00:00

案例9:

select INTERVAL '20' DAY - INTERVAL '21' HOUR from dual;   +000000019 03:00:00.000000000 --表示 20天-21小时=19天3小时
select sysdate - (INTERVAL '1' HOUR) from dual;   2021/3/9 12:14:44 --表示当前时间前一个小时时间

oracle中的INTERVAL函数用法相关推荐

  1. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  2. Oracle中ROW_NUMBER() OVER()函数用法

    Oracle中ROW_NUMBER() OVER()函数用法 1. 说明:ROW_NUMBER() OVER() 函数的作用:分组排序 2. 原理: row_number() over() 函数,ov ...

  3. oracle求和分组排序,oracle中分组排序函数用法 - 转

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  4. oracle中按数字大小排序函数,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...

  5. Oracle中的wm_concat函数用法

    在日常的数据查询过程中,经常遇到一条信息分多条记录存储,并以同一个ID关联的情况,比如常见的房产证权利人信息,因为共有权人可能有很多,不可能把所有的权利人都放到权利人表的权利人字段,把所有权利人的证件 ...

  6. oracle中rollback用法,Oracle中SAVEPOINT和ROLLBACK用法

    savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...

  7. oracle 正则表达式拆分字符串,oracle中通过正则表达式函数处理逗号分隔的字段...

    这个题目的确不大好写,其实际含义基于一个场景: 比如在oracle的某张表中,有两个字段 A1          B1 1         A,B,C,D, 2         E,F 假如现在的需求 ...

  8. oracle中over()分析函数的用法

    摘自: http://www.poluoluo.com/jzxy/201004/81921.html 百度文库也记载了oracle中over()分析函数的用法 在泡坛子的时候中无意中发现了这个函数,才 ...

  9. oracle substr(table),oracle中的substr()函数

    SUBSTR(cExpression,nStartPosition [,nCharactersReturned]) 其中,cExpression指定要从其中返回字符串的字符表达式或备注字段: nSta ...

  10. oracle取第一位,Oracle中的substr()函数和INSTR()函数

    1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string,int a,int b); 格式2:substr(string string,int a) ; ...

最新文章

  1. 第二天:Vue基础语法
  2. LeetCode刷题记录4——67. Add Binary(easy)
  3. Idea项目遇到的错误整理
  4. GAITC 2021智媒论坛丨曹立宏:AI和BI互助发展 智能媒体任重道远
  5. linux 把mysql大小写关闭_linux中设置mysql大小写不去区分方法
  6. 关于mysql优化_MYSQL---关于MYSQL优化
  7. DCMTK:表示细分对象的类
  8. 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)
  9. 为什么toString方法可以用来区分数组和对象?
  10. SolidWorks转3DMAX
  11. excel两个表格数据对比_两个Excel表格合并,最有水平的处理方法
  12. 一封信:同学聚会后的追忆
  13. 微波工程(6)——射频放大器设计
  14. LeCun列传:曾因AI理论遭人唾弃,如今终成一代大神
  15. Write a program that gives count of common characters presented in an array of strings..(or array of
  16. 海外云服务器备份和恢复的6种最佳做法
  17. 【Docker】Linux各系统安装Docker,Docker-compose方式汇总
  18. 《咸鱼分享》咸鱼在线TOP
  19. arduino智能跟随小车
  20. 低配本用win10服务器系统,低配电脑用win7还是win10比较好_低配置电脑装win7还是win10系统合适...

热门文章

  1. tfs php,TFS的原理及应用
  2. pythondjango学生信息管理系统_Django实现学员管理系统
  3. 期货业-期货市场的产生
  4. PHP中smart原则,目标smart原则 “smart原则”什么意思?
  5. win10触屏输入法_Win10触摸键盘怎么使用手写板功能输入?
  6. php euc-cn,php配置中文解说
  7. 六年Java程序员转行做鸭
  8. protected 修饰符的使用
  9. Git:rebase 是什么
  10. 无线通信与生活-(1)