1.ROUND、TRUNC
(1).ROUND(n[,m])函数用于四舍五入,参数n可以是任意数字,指要被处理的数字,m必须为整数,m取正整数则四舍五入到小数点前m位,如m取0时四舍五入到整数位,m取负数则四舍五入到小数点前m位,如果m缺省,默认为0。
round(input_value,decimal_places_of_precision),例如:
SQL> select round(1234.5678,4) from dual;
ROUND(1234.5678,4)
------------------
1234.5678
SQL> select round(1234.5678,3) from dual;
ROUND(1234.5678,3)
------------------
1234.568
SQL> select round(1234.5678,2) from dual;
ROUND(1234.5678,2)
------------------
1234.57
SQL> select round(1234.5678,1) from dual;
ROUND(1234.5678,1)
------------------
1234.6
SQL> select round(1234.5678,0) from dual;
ROUND(1234.5678,0)
------------------
1235
SQL> select round(1234.5678,-1) from dual;
ROUND(1234.5678,-1)
-------------------
1230
SQL> select round(1234.5678,-2) from dual;
ROUND(1234.5678,-2)
-------------------
1200
SQL> select round(1234.5678,-3) from dual;
ROUND(1234.5678,-3)
-------------------
1000
SQL> select round(1234.5678,4) from dual;
ROUND(1234.5678,4)
------------------
1234.5678
SQL> select round(1234.5678,3) from dual;
ROUND(1234.5678,3)
------------------
1234.568
SQL> select round(1234.5678,2) from dual;
ROUND(1234.5678,2)
------------------
1234.57
SQL> select round(1234.5678,1) from dual;
ROUND(1234.5678,1)
------------------
1234.6
SQL> select round(1234.5678,0) from dual;
ROUND(1234.5678,0)
------------------
1235
SQL> select round(1234.5678,-1) from dual;
ROUND(1234.5678,-1)
-------------------
1230
SQL> select round(1234.5678,-2) from dual;
ROUND(1234.5678,-2)
-------------------
1200
SQL> select round(1234.5678,-3) from dual;
ROUND(1234.5678,-3)
-------------------
1000
(2).TRUNC(n[,m])用于截取,n,m 与(1)相同
--Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120