MSSQL(Sql Server)数据特殊类型知识汇总
MSSQL(Sql Server)数据特殊类型知识汇总
01. MSSQL数据类型-货币数据类型(money、smallmoney)
货币数据类型用于存储货币或现金值,包括money型和smallmoney型。按照类型的取值来区分的话一个是“钱”而另外一个是“小钱”。在使用货币数据类型时,应在数据前加上货币符号,以便系统辨识其为哪国的货币,如果不加货币符号,则系统默认为“¥”。
money型是一个有4位小数的decimal值,其取值从-263(-9 223 372 036 854 775 808) ~263-1(+9 223 372 036 854 775 807),这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的千分之十。存储大小为8个字节。 存储形式为1234567.89。
money小数点后面只有四位数字,四位以后的数字是四舍五入的
smallmoney型货币数据值介于-214748.3648 到214748.3647之间,精确到货币单位的千分之十。存储大小为 4 个字节。 smallmoney和money在小数位都是一样的只不过存储的位数不一样。
存储空间 | 小数位数 | 数据精度 | 数值范围 | 特点 | |
money型 | 8字节 | 4 | 千分之十 | -9220亿到9220 亿 | 全部“钱” |
smallmoney型 | 4字节 | 4 | 千分之十 | -214748.3648 到214748.3647 | “小钱” 正负21万以内 |
·
(所以,上万以上的钱,尽量不用 smallmoney, 因为加减乘除后很容易超过最大“小钱”的数值范围)
MSSQL(SQL Server)中,Numric,Decimal,Money三种数据类型的区别
numeric(10,2) 表示最大可以放10位数,但这10位数里有2位是小数位。 即 12345678.12
decimal与money同样的长度与精度,但decimal占用字节数要比money多1个字节(比smallmoney更是要多5个字节),为了通用与标准,建议金钱直接用decimal类型,牺牲一点硬盘不算啥。
numeric 功能上等同于 decimal
money 功能上等同于 decimal(x, 4)
···