5.常见一些函数用法

本文详细介绍了Oracle数据库中的日期时间函数,包括add_months用于加月、last_day获取月底、months_between计算月差、next_day确定特定星期、round四舍五入以及substr用于字符串截取。
摘要由CSDN通过智能技术生成

常见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个字符 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值