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)from dual ; ---123

 selectfloor(-123.456)from dual ; ---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'



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值