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

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/yLazL0000/article/details/79269016
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'



猜你喜欢

转载自blog.csdn.net/yLazL0000/article/details/79269016
今日推荐