Oracle学习笔记:数值型处理方法(number)。

Oracle中最重要的数值型就是number,也是oracle中仅有的一种数值类型。

 

number(prevision,scale);
//prevision表示number类型的精度,取值为1<=prevision<=38,scale表示小数位数,取值为-84<=scale<=127;
//12345.977中,若精确到小数点后两位,数据位12345.98,精度为7。精确到小数点前两位,数据为12300,此时精度为3。
//当scale为正数时,精确到小数后x位,为负数则精确到小数点前x位。

 

Oracle内置函数:

绝对值abs():

select abs(-111) from dual;//结果为111

四舍五入round(源数值,小数位数):

 

 

select round(3.1415926,4) from dual;//结果为3.1416
select round(3456.78,-1) from dual;//结果为34570,精确到小数点前几位
select round(3456.78) from dual;//结果为345678,小数位数为0或者省略取整。

向上取整ceil():返回大于等于参数值的最小整数。

 

select ceil(23.45) from dual;//结果为24
select ceil(-23.45) from dual;//结果为-23

向下取整floor():返回小于等于参数值的最大整数。

 

select ceil(23.45) from dual;//结果为22
select ceil(-23.45) from dual;//结果为-24

取模操作mod(除数,被除数):

 

 

select mod(5,2) from dual;//结果为1

返回字符正负性sign()函数:

 

select sign(100) from dual;//参数为正数返回1,负数返回-1,0则返回0。此处返回1。

取平方根sqrt():

 

 

select sqrt(4) from dual;//返回为2,若参数为0 ,oracle报异常。

取平方值power(底数,指数):

 

 

select power(4,3) from dual;//返回值为64

截取数字trunc(源数值,小数位数):

 

select trunc(3.14159,4) from dual;//返回值为3.1415,类似于round(),但是不进行四舍五入。

将ASCII码转换为字符chr():

 

select chr(66) from dual;//返回B。

格式化数值to_char(源数值,格式):

 

select to_char(12.78,'000.000')  from dual;//0是数字为,当相应位置没有内容时,强行添加0,此处返回 012.780。
select to_char(12.78,'999.999') from dual;//9是数字为,当整数部分没有对应内容时,不添加,小数部分添加0,此处返回 12.780。
//0和9可以混合用。
select to_char(4567800,'99,999,990,00') from dual;//逗号是格式符,强制转换成相应格式,此处返回4,567,800.00。
select to_char(12.78,'FM999.999') from dual;//返回值为12.78,屏蔽了后面的没意义0。另外输出的前面没有空格了。
select to_char(12.78,'$999.999') from dual;//$可加在任意位置,输出均为$12.780。
select to_char(12.78,'L999.999') from dual;//$仅是美元符号,L是本国符号,此处输出的是¥12.780。
select to_char(12.78,'999.999C') from dual;//C是另外一种货币符号,此处输出为12.780CNY。
//上面的都可与FM合用,FM需要放在最前面。
select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual;//此处输出系统准确时间,2013-10-22 15:55:41。
select sysdate from dual;//此处只能输出2013-10-22 00:00:00。



 

 

 

 

你可能感兴趣的:(oracle学习)