Oracle基本函数-round()、trunc()、mod()

ROUND(X,Y):四舍五入,保留y位小数点
TRUNC(X,Y):截取数字到Y位小数
MOD(X,Y):x除以y的余数

select round(45.927,2) 四舍五入到小数点后两位,round(45.927,0) 四舍五入不保留小数点,round(45.927,-1) 小数点左边一位四舍五入,
trunc(45.927,0) 截取整数,trunc(45.927,2) 截取到小数点后两位,trunc(45.927,-1) 截取到小数点左边一位,
mod(45,12) 余数 from dual

这里写图片描述

讲解:
round(45.927,2) 四舍五入、保留到小数点后两位,7>=5 进1,所有结果为45.93
round(45.927,0) 四舍五入、保留到小数点零位、也就是取整数部分,9>=5进1,所以结果为46,相当于round(45.927),不写默认是0,取整数
round(45.927,-1) :四舍五入,负数从小数点往左数,-1即在个位数进行四舍五入,5>=5进1,所以结果为50


trunc(45.927,0):trunc和round不同,它只负责截取,不管你四舍五入,截取到小数点第零位,即取整,结果为45
trunc(45.927,2) :保留两位小数点截取,结果为45.92
trunc(45.927,-1) :截取到个位,即个位不要了,那就是40


mod(45,12) :没啥说的,取余数,45除以12=3 余9


select round(sysdate),trunc(sysdate) from dual

这里写图片描述
讲解:
sysdate 为电脑当前系统时间
Oracle在内部使用数字格式存储日期的,即存成如下格式
这里写图片描述
round(sysdate) :四射五入取整,因为日期后面的小时16>=5所以进1,结果为2018/5/31
trunc(sysdate) :只是截取年月日,结果为2018/5/30

猜你喜欢

转载自blog.csdn.net/fightingitpanda/article/details/80512095