SQL Server中,NumricDecimalMoney三种字段类型的区别

 

 

 
 
 

都是精确数据类型, 
前两个可以自己定义长度和小数位数, 
Money的定义相当于Numric(19,4)

SQL Server 2000中,numric数据类型和decimal类型中的长度和精度存在着什么样的关系!

长度和精度存在着什么样的关系 
numeric(10,2) 

是最大可以放10位数,但这10位数里有2位是小数如: 

12345678.12

我是说精度小于等于9的时候,长度固定为5,而精度为10的时候,长度就变为9了,我也没找出什么规律来,不知道这是为什么?

numeric 

功能上等同于 decimal。

/******************************** 字段 *******************/ 

整数 
bigint 

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。 

int 

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。 

smallint 

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。 

tinyint 

从 0 到 255 的整数数据。 

bit 
bit 

1 或 0 的整数数据。 

decimal 和 numeric 
decimal 

从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。 

numeric 

功能上等同于 decimal。
 

money 和 smallmoney 
money 

货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。 

smallmoney 

货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。 

近似数字 
float 

从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。 

real 

从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。 

datetime 和 smalldatetime 
datetime 

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。 

smalldatetime 

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。 

字符串 
char 

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。 

varchar 

可变长度的非 Unicode 数据,最长为 8,000 个字符。 

text 

可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。 

Unicode 字符串 
nchar 

固定长度的 Unicode 数据,最大长度为 4,000 个字符。 

nvarchar 

可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。 

ntext 

可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。 

二进制字符串 
binary 

固定长度的二进制数据,其最大长度为 8,000 个字节。 

varbinary 

可变长度的二进制数据,其最大长度为 8,000 个字节。 

image 

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。 

其它数据类型 
cursor 

游标的引用。 

sql_variant 

一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。 

table 

一种特殊的数据类型,存储供以后处理的结果集。 

timestamp 

数据库范围的唯一数字,每次更新行时也进行更新。 

uniqueidentifier 

全局唯一标识符 (GUID)。  

原文地址:https://www.cnblogs.com/YoungPop-Chen/p/3282952.html