特别注意:
int型的最大值为21亿多,超过这个范围,需要用bigint类型
数据类型 | 范围 | 存储 | ||||
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 字节 | ||||
money | -922,337,203,685,477.5808 到 922,337,203,685,477.5807 | 8 字节 | ||||
smallmoney | -214,748.3648 到 214,748.3647 | 4 字节 | ||||
decimal | - 10^38 +1 到 10^38 - 1 | 存储字节数 | 精度 | |||
numeric | - 10^38 +1 到 10^38 - 1 | 5 字节 | 1 - 9 | |||
9 字节 | 10-19 | |||||
13 字节 | 20-28 | |||||
17 字节 | 29-38 | |||||
bit | 可以取值为 1、0 或 NULL 的整数数据类型。 | SQL Server 数据库引擎可优化 bit 列的存储。如果表中的列为 8 bit 或更少,则这些列作为 1 个字节存储。如果列为 9 到 16 bit,则这些列作为 2 个字节存储,以此类推。 | ||||
float | -1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308 | 取决于 n 的值( float[(n)]) | ||||
real | -3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38 | 4 字节 | ||||
nvalue | 精度 | 存储大小 | ||||
1-24 | 7 位数 | 4 字节 | ||||
25-53 | 15 位数 | 8 字节 | ||||
数据类型 | 格式 | 范围 | 精确度 | 存储大小(以字节为单位) | 用户定义的秒的小数精度 | 时区偏移量 |
hh:mm:ss[.nnnnnnn] | 00:00:00.0000000 到 23:59:59.9999999 | 100 纳秒 | 3 到 5 | 有 | 无 | |
YYYY-MM-DD | 0001-01-01 到 9999-12-31 | 1 天 | 3 | 无 | 无 | |
YYYY-MM-DD hh:mm:ss | 1900-01-01 到 2079-06-06 | 1 分钟 | 4 | 无 | 无 | |
YYYY-MM-DD hh:mm:ss[.nnn] | 1753-01-01 到 9999-12-31 | 0.00333 秒 | 8 | 无 | 无 | |
YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999 | 100 纳秒 | 6 到 8 | 有 | 无 | |
YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999 | 100 纳秒 | 8 到 10 | 有 | 有 | |
char(n) | n 的取值范围为 1 至 8,000 | 存储大小是 n 个字节 | ||||
nchar(n|max) | 介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。 | 存储大小为两倍 n 字节 | ||||
varchar(n) | n 的取值范围为 1 至 8,000 | 存储大小是输入数据的实际长度加 2 个字节,max 指示最大存储大小是 2^31-1 个字节 | ||||
nvarchar(n|max) | n 的取值范围为 1 至 4,000 | 存储大小是所输入字符个数的两倍 + 2 个字节,max 指示最大存储大小为 2^31-1 字节 | ||||
text | 长度可变的非 Unicode 数据,最大长度为 2^31-1 (2,147,483,647) 个字符 | 当服务器代码页使用双字节字符时,存储仍是 2,147,483,647 字节。根据字符串,存储大小可能小于 2,147,483,647 字节。 | ||||
ntext | 长度可变的 Unicode 数据,最大长度为 2^30 - 1 (1,073,741,823) 个字符 | 存储大小是所输入字符个数的两倍(以字节为单位)。 | ||||
image | 长度可变的二进制数据,最大长度为2^31-1 (2,147,483,647) 个字节 | |||||
binary [(n)] | 长度为 n 字节的固定长度二进制数据,其中 n 是从 1 到 8,000 的值 | 存储大小为 n 字节 | ||||
varbinary [(n|max)] | 可变长度二进制数据。n 可以是从 1 到 8,000 之间的值。 | max 指示最大存储大小为 2^31-1 字节。存储大小为所输入数据的实际长度 + 2 个字节 | ||||
sql_variant | sql_variant 的最大长度可以是 8016 个字节。这包括基类型信息和基类型值。实际基类型值的最大长度是 8,000 个字节。 | |||||
timestamp | 公开数据库中自动生成的唯一二进制数字的数据类型。rowversion 通常用作给表行加版本戳的机制。 | 存储大小为 8 个字节 | ||||
uniqueidentifier | GUID | 存储大小为 16 个字节 | ||||
XML | 存储的 xml 数据类型表示实例大小不能超过 2 GB | |||||
hierarchyid | 长度可变的系统数据类型。可使用表示层次结构中的位置 | |||||
geometry | CLR空间类型 | |||||
geography |