oracle中的INTERVAL函数用法
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函数用法相关推荐
- oracle分类函数总结,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- Oracle中ROW_NUMBER() OVER()函数用法
Oracle中ROW_NUMBER() OVER()函数用法 1. 说明:ROW_NUMBER() OVER() 函数的作用:分组排序 2. 原理: row_number() over() 函数,ov ...
- oracle求和分组排序,oracle中分组排序函数用法 - 转
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- oracle中按数字大小排序函数,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...
- Oracle中的wm_concat函数用法
在日常的数据查询过程中,经常遇到一条信息分多条记录存储,并以同一个ID关联的情况,比如常见的房产证权利人信息,因为共有权人可能有很多,不可能把所有的权利人都放到权利人表的权利人字段,把所有权利人的证件 ...
- oracle中rollback用法,Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- oracle 正则表达式拆分字符串,oracle中通过正则表达式函数处理逗号分隔的字段...
这个题目的确不大好写,其实际含义基于一个场景: 比如在oracle的某张表中,有两个字段 A1 B1 1 A,B,C,D, 2 E,F 假如现在的需求 ...
- oracle中over()分析函数的用法
摘自: http://www.poluoluo.com/jzxy/201004/81921.html 百度文库也记载了oracle中over()分析函数的用法 在泡坛子的时候中无意中发现了这个函数,才 ...
- oracle substr(table),oracle中的substr()函数
SUBSTR(cExpression,nStartPosition [,nCharactersReturned]) 其中,cExpression指定要从其中返回字符串的字符表达式或备注字段: nSta ...
- oracle取第一位,Oracle中的substr()函数和INSTR()函数
1)substr函数格式 (俗称:字符截取函数) 格式1: substr(string string,int a,int b); 格式2:substr(string string,int a) ; ...
最新文章
- 第二天:Vue基础语法
- LeetCode刷题记录4——67. Add Binary(easy)
- Idea项目遇到的错误整理
- GAITC 2021智媒论坛丨曹立宏:AI和BI互助发展 智能媒体任重道远
- linux 把mysql大小写关闭_linux中设置mysql大小写不去区分方法
- 关于mysql优化_MYSQL---关于MYSQL优化
- DCMTK:表示细分对象的类
- 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)
- 为什么toString方法可以用来区分数组和对象?
- SolidWorks转3DMAX
- excel两个表格数据对比_两个Excel表格合并,最有水平的处理方法
- 一封信:同学聚会后的追忆
- 微波工程(6)——射频放大器设计
- LeCun列传:曾因AI理论遭人唾弃,如今终成一代大神
- Write a program that gives count of common characters presented in an array of strings..(or array of
- 海外云服务器备份和恢复的6种最佳做法
- 【Docker】Linux各系统安装Docker,Docker-compose方式汇总
- 《咸鱼分享》咸鱼在线TOP
- arduino智能跟随小车
- 低配本用win10服务器系统,低配电脑用win7还是win10比较好_低配置电脑装win7还是win10系统合适...