1,number(p,s)类型:
number(p,s)中的p表示数据有效的位数;s表示精确到小数点后几位.(其中p取值为1到38,s取值-84到127).
当s>=0 ,number(p,s) 精确到小数点后s位,并且在s位上四舍五入,必须保证整个数字的有效位小于等于p,否则错误,如果出现s>p的情况比如0.01234567 number(4,5)下数值为0.01235.
当 s<0 , 比如number(4,-2)是小数点对左边两位进行四舍五入,总共的最大位数是p+|s|=6位,这是必须的,只能比6位小,否则报错,也就是允许的最大值是999949,如果再多一个999950左边两位就会进位 变成七位数 这是不允许的。比如number(5,-2) 如果插入值12345678.9是错误的 因为小数点左边已经有8位 超过5+2=7位。正确实例:number(4,-2) 插入值899949 ,对49进行四舍五为00,为899900.。 比如:1234567 NUMBER(5,-2) 1234600 即使对67五入了也要随后置零.
Oracle数据库中的数值函数 对左边三个四舍五入round(7844,-3)=8000 直接截取左边三个trunc(7844,-3)=7000
定点数的精度(p)和刻度(s)遵循以下规则:
当一个数的整数部分的长度 > p-s 时,Oracle就会报错
当 一个数的小数部分的长度 > s 时,Oracle就会舍入。
当s为负数时,Oracle就对小数点左边的s个数字进行舍入。
当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入
date类型(日期型数据)
date为创建表格时定义的数据类型,需要将数据进行转换才能显示为date类型的数据
例如: to_date('2017-07-17','yyyy-mm-dd')