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
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'