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。