请问下SQL中NUMERIC和DECIMAL的区别?

如题所述

numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。

decimal(numeric ) 同义,用于精确存储数值
decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。

NUMERIC(P,S) P的默认值是:38 S的默认值是:-84~127
numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-23
numeric 的功能相当於 decimal 。其实没有多大的区别,它们的存储数的范围不同,DECIMAL要小一点。本回答被网友采纳
第2个回答  2011-10-28
其实没有多大的区别,它们的存储数的范围不同,DECIMAL要小一点。
第3个回答  推荐于2017-09-08
具有固定有效位数和小数位数的数值资料类型。

decimal[ (p[ , s] )] and numeric[ (p[ , s] )]

固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义字是 dec 和 dec(p, s)。numeric 的功能相当於 decimal。

p (有效位数)

可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。

s (小数位数)

小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。本回答被提问者采纳