trun()round()函数
trunc截取可以用于截取时间也可以用于截取数字
----------------------时间------------
select trunc(sysdate) from dual;--2014/9/16今天的日期
select trunc(sysdate,'mm') from dual;--2014/9/1当前月的第一天
select trunc(sysdate,'yyyy')from dual;--2014/1/1当前年度的第一天
select trunc(sysdate,'dd')from dual;--2014/9/16当前日期
select trunc(sysdate,'yy')from dual;--2014/1/1当前年度的第一天
select trunc(sysdate,'d') from dual;--2014/9/14当前星期的第一天(周日是第一天)
select trunc(sysdate,'hh')from dual;--2014/9/16 16:00:00返回当前日期的时间点精确到时
select trunc(sysdate,'mi')from dual;--2014/9/16 16:14:00返回当前日期精确到分钟
select trunc(sysdate,'w')from dual;--2014/9/15返回当前时间的(周一)
select trunc(sysdate,'ss')from dual;--报错,没有精确到秒
-----------------------数字--------------------------
select trunc(123.485) from dual;--123默认截取整数
select trunc(123.485,1) from dual;--123.4留取一位小数,不进行四舍五入
select trunc(123.485,2)from dual;--123.48留取两位小数
select trunc(123.485,3)from dual;--123.485留取三位小数
select trunc(123.485,-1)from dual;--120
select trunc(123.955,-1)from dual;--120
select trunc(123.485,-2)from dual;--100
select trunc(123.485,-3)from dual;--0
--------------round()函数----------------------
select round(123.485) from dual;--123
select round(123.485,1) from dual;--123.5留取一位小数,进行四舍五入
select round(123.485,-1)from dual;--120
select round(127.955,-1)from dual;--130进行四舍五入,-1代表进入个位
select round(123.485,-2)from dual;--100
--------------ceil()和floor()函数----------------------
3.ceil和floor函数
ceil和floor函数在一些业务数据的时候,有时还是很有用的。
ceil(n) 取大于等于数值n的最小整数;
floor(n)取小于等于数值n的最大整数
如下例子
select ceil(15.34) num from dual --16
select ceil(15.84) num from dual --16
select ceil(-15.34) num from dual -- -15
select ceil(-15.84) num from dual -- -15
select floor(15.34) num from dual --15
select floor(15.84) num from dual --15
select floor(-15.34) num from dual -- -16
select floor(-15.84) num from dual -- -16
trunc截取可以用于截取时间也可以用于截取数字
----------------------时间------------
select trunc(sysdate) from dual;--2014/9/16今天的日期
select trunc(sysdate,'mm') from dual;--2014/9/1当前月的第一天
select trunc(sysdate,'yyyy')from dual;--2014/1/1当前年度的第一天
select trunc(sysdate,'dd')from dual;--2014/9/16当前日期
select trunc(sysdate,'yy')from dual;--2014/1/1当前年度的第一天
select trunc(sysdate,'d') from dual;--2014/9/14当前星期的第一天(周日是第一天)
select trunc(sysdate,'hh')from dual;--2014/9/16 16:00:00返回当前日期的时间点精确到时
select trunc(sysdate,'mi')from dual;--2014/9/16 16:14:00返回当前日期精确到分钟
select trunc(sysdate,'w')from dual;--2014/9/15返回当前时间的(周一)
select trunc(sysdate,'ss')from dual;--报错,没有精确到秒
-----------------------数字--------------------------
select trunc(123.485) from dual;--123默认截取整数
select trunc(123.485,1) from dual;--123.4留取一位小数,不进行四舍五入
select trunc(123.485,2)from dual;--123.48留取两位小数
select trunc(123.485,3)from dual;--123.485留取三位小数
select trunc(123.485,-1)from dual;--120
select trunc(123.955,-1)from dual;--120
select trunc(123.485,-2)from dual;--100
select trunc(123.485,-3)from dual;--0
--------------round()函数----------------------
select round(123.485) from dual;--123
select round(123.485,1) from dual;--123.5留取一位小数,进行四舍五入
select round(123.485,-1)from dual;--120
select round(127.955,-1)from dual;--130进行四舍五入,-1代表进入个位
select round(123.485,-2)from dual;--100
--------------ceil()和floor()函数----------------------
3.ceil和floor函数
ceil和floor函数在一些业务数据的时候,有时还是很有用的。
ceil(n) 取大于等于数值n的最小整数;
floor(n)取小于等于数值n的最大整数
如下例子
select ceil(15.34) num from dual --16
select ceil(15.84) num from dual --16
select ceil(-15.34) num from dual -- -15
select ceil(-15.84) num from dual -- -15
select floor(15.34) num from dual --15
select floor(15.84) num from dual --15
select floor(-15.34) num from dual -- -16
select floor(-15.84) num from dual -- -16