Oracle中trunc、round 、ceil和floor函数的区别?

1、trunc函数

处理数值,对给定数值进行截取处理,不会对给定数值做四舍五入处理。

语法格式:

TRUNC(number[,decimals])--number 待处理的数据,decimals指明需保留小数点后的位数,默认为0

如果参数为负数,则小数点往前取位数,如果负数位数大于或等于待处理数据位数,则返回0.

selecttrunc(123.456)from dual;--123

selecttrunc(123.456,2)from dual;--123.45

selecttrunc(123.456,-1)from dual;--120

selecttrunc(123.456,-3)from dual;--0

处理日期,trunc函数以指定格式截取日期值。

语法格式:

TRUNC(date,[fmt])--date为日期值,fmt可选参数,指定日期截取方式,默认截取最近日期。

selecttrunc(sysdate,'YY')from dual;--返回当年第一天,2018-1-1

selecttrunc(sysdate,'YYYY')from dual;--返回当年第一天,2018-1-1

selecttrunc(sysdate,'MM')from dual;--返回当月第一天,2018-2-1

selecttrunc(sysdate,'D')from dual;--返回本周第一天,2018-2-4

selecttrunc(sysdate,'DD')from dual;--返回当前年月日,2018-2-6

2、round 函数

 按照给定条件对数值进行四舍五入处理。

 

语法格式:

ROUND(number,[,decimals])--number,待处理的数值,decimals,小数点后保留的位数,

为负,则从小数点往前截取。与trunc函数不同的是,round函数需要四舍五入。

 selectround(123.456)from dual;--123

 

 selectround(123.456,1)from dual;--123.5

 

 selectround(123.456,-1)from dual;--120

3、ceil和floor函数

ceil函数与floor函数对给定数值取整。

语法格式:

 

ceil(number)--取大于、等于数值number的最小整数

 

floor(number) --取小于、等于数值number的最大整数

 

 selectfloor(123.456)from dual;--123

 

 selectceil(123.456)fromdual;--124

 

 selectceil(-123.456)fromdual;---123

 

 selectfloor(-123.456)fromdual;---124

 

 ceil处理日期

 

selectceil((To_date('2018-2-6 16:50:55', 'yyyy-mm-dd hh24-mi-ss') -

To_date('2018-2-6 14:55:24', 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 秒数

from dual--6932

 

如果是24*60则精确到分钟。ceil(6932)->116'

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值