常见Oracle 日期时间函数:
1、add_months(x,y)—计算在日期x 的基础上增加 y 个月之后的日期。
例:为了方便对比,下面代码中都给出了当前系统时间;
SELECT SYADATE,ADD_MONTHS(SYSDATE,2) FROM DUAL;
2017/6/9 16:36:20 2017/8/9 16:36:20
2、last_day(x)——返回日期 x 当月最后一天的日期
SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUAL;
2017/6/9 16:39:42 2017/6/30 16:39:42
3、months_between(x,y)——返回 x 和 y 之间相差的月数
SELECT SYSDATE,MONTHS_BETWEEN(SYSDATE,TO_DATE('20170101','YYYY-MM-DD')) FROM DUAL;
2017/6/9 16:42:15 5.28051635304659
4、next_day(x,y)——计算指定日期 x 后的第一个星期几(由参数 y 指定)对应的日期
SELECT SYSDATE,NEXT_DAY(SYSDATE,1) FROM DUAL;
2017/6/9 16:59:21 2017/6/11 16:59:21
5、round(number,decimals) 对某个值进行四舍五入
参数:
number:要进行四舍五入的数值
decimals:指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。如果为正数则表示从小数点右边开始的位置进行四舍五入,如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,小数被去掉。
select round(1235.466) from dual;-- 返回结果为1235相当于round(1235.466,0)
select round(1235.466,2) from dual;-- 返回结果为1235.47
select round(1235.466,-1) from dual;-- 返回结果为1240
select round(1234.466,-1) from dual;-- 返回结果为1230
select round(1234.466,3) from dual;-- 返回结果为1234.466
6、substr(string string, int a, int b) 字符截取
格式1:substr(string string, int a, int b)
格式2:substr(string string, int a)
格式1:
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
格式2:
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。
1、select substr('HelloWorld',0,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
2、select substr('HelloWorld',1,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
3、select substr('HelloWorld',2,3) value from dual; //返回结果:ell,截取从“e”开始3个字符
4、select substr('HelloWorld',0,100) value from dual; //返回结果:HelloWorld
5、select substr('HelloWorld',5,3) value from dual; //返回结果:oWo
6、select substr('Hello World',5,3) value from dual; //返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
7、select substr('HelloWorld',-1,3) value from dual; //返回结果:d
8、select substr('HelloWorld',-2,3) value from dual; //返回结果:ld
9、select substr('HelloWorld',-3,3) value from dual; //返回结果:rld (从后面倒数第三位开始往后取3个字符)
10、select substr('HelloWorld',-4,3) value from dual; //返回结果:orl (从后面倒数第四位开始往后取3个字符)
11、select substr('HelloWorld',0) value from dual; //返回结果:HelloWorld,截取所有字符
12、select substr('HelloWorld',1) value from dual; //返回结果:HelloWorld,截取所有字符
13、select substr('HelloWorld',2) value from dual; //返回结果:elloWorld,截取从“e”开始之后所有字符
14、select substr('HelloWorld',3) value from dual; //返回结果:lloWorld,截取从“l”开始之后所有字符
15、select substr('HelloWorld',-1) value from dual; //返回结果:d,从最后一个“d”开始 往回截取1个字符
16、select substr('HelloWorld',-2) value from dual; //返回结果:ld,从最后一个“d”开始 往回截取2个字符
17、select substr('HelloWorld',-3) value from dual; //返回结果:rld,从最后一个“d”开始 往回截取3个字符