SQL Server 2005 中的数据类型归纳为下列类别:精确数字 bigint decimal int numeric smallint money tinyint smallmoney bit 近似数字 float real 日期和时间 datetime smalldatetime 字符串 char text varchar Unicode字符串 nchar ntext nvarchar 二进制
SQL Server 2005 中的数据类型归纳为下列类别:精确数字
bigint
decimal
int
numeric
smallint
money
tinyint
smallmoney
bit
近似数字
float
real
日期和时间
datetime
smalldatetime
字符串
char
text
varchar
Unicode字符串
nchar
ntext
nvarchar
二进制字符串
binary
image
varbinary
其他数据类型
cursor
timestamp
sql_variant
uniqueidentifier
table
1、精确数字
I) 整型数据类型int、bigint、smallint 和 tinyint
数据类型
范围
存储
bigint
-2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)
8 字节
int
-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
4 字节
smallint
-2^15 (-32,768) 到 2^15-1 (32,767)
2 字节
tinyint
0 到 255
1 字节
II) bit 可以取值为 1、0 或 NULL 的整数数据类型。如果表中的列为 8 bit 或更少,,则这些列作为 1 个字节存储。如果列为 9 到 16 bit,则这些列作为 2 个字节存储,以此类推。字符串值 TRUE 和 FALSE 可以转换为以下 bit 值:TRUE 转换为 1,FALSE 转换为 0。
III) decimal 和 numeric,两者都是带固定精度和小数位数的数值数据类型。decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )] 两者都是固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。numeric 在功能上等价于 decimal。p(精度)最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。s(小数位数)小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。
Ⅳ) money 和 smallmoney,两者是 代表货币或货币值的数据类型。
数据类型
范围
存储
money
-922,337,203,685,477.5808 到 922,337,203,685,477.5807
8 字节
smallmoney
-214,748.3648 到 214,748.3647
4 字节
money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。
2、近似数字 float 和 real,两者用于表示浮点数值数据的大致数值数据类型。浮点数据为近似值;因此,并非 数据类型范围内的所有值都能精确地表示。
数据类型
范围
存储
float
-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308
取决于 n 的值
real
-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38
4 字节
float [ ( n ) ] 其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。
3、日期和时间 datetime 和 smalldatetime 两者用于表示某天的日期和时间的数据类型。
数据类型
范围
精确度
datetime
1753 年 1 月 1 日到 9999 年 12 月 31 日
3.33 毫秒
smalldatetime
1900 年 1 月 1 日到 2079 年 6 月 6 日
1 分钟
datetime用两个 4 字节的整数存储,第一个 4 字节存储"基础日期"(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。