准确数值类型
精确数值类型 | 说明 | 存储空间 |
---|
bigint | 存储从–263 (–9,223,372,036,854,775,808)到 263-1 (9,223,372,036,854,775,807) 范围的整数 | 8 字节 |
int | 存储从–231 (–2,147,483,648 ) 到 231-1 ( 2,147,483,647 ) 范围的整数。 | 4 字节 |
smallint | 存储从–215 (–32,768 ) 到 215-1 (32,767 ) 范围的整数 | 2 字节 |
tinyint | 存储从 0 到 255 之间的整数。 | 1 字节 |
bit | 存储 1 或 0。如果一个表中有不多于 8 个的 bit 列,则这些列公用一个字节存储 | 1 字节 |
numeric(p,s)或 decimal(p,s) | 定点精度和小数位数。使用最大精度时,有效值从 –1038 +1 到 1038 -1。其中,s 为精度,指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。s 为小数位数,指定小数点右边可以存储的十进制数字的最大个数,0 <= s <= p。s 的默认值为 0 | 最多 17 字节 |
近似数值数类型
近似数值类型 | 说明 | 存储空间 |
---|
float[(n)] | 存储从-1.79E + 308 至-2.23E –308、0 以及 2.23E–308 至 1.79E + 308 范围的浮点数。n 有两个值,如果指定的 n 在 1 ~ 24 之间,则使用 24,占用 4 字节空间;如果指定的 n 在 25~53 之间,则使用 53,占用 8 字节空间。若省略(n),则默认为 53 | 4 字节或 8 字节 |
real | 存储从–3.40E + 38 到 3.40E + 38 范围的浮点型数 | 4 字节 |
字符串类型
普通编码字符串类型
普通编码字符串类型 | 说明 | 存储空间 |
---|
char(n) | 固定长度的普通编码字符串类型,n 表示字符串的最大长度,取值范围为 1 ~ 8000 | n 个字节。当实际字符串所需空间小于 n 时,系统自动在后边补空格 |
varchar(n) | 可变长度的字符串类型,n 表示字符串的最大长度,取值范围为 1 ~ 8000 | 字符数+ 2 字节额外开销 |
text | 最多可存储 231-1 (2,147,483,647) 个字符 | 每个字符 1 个字节 |
varchar(max) | 最多可存储 231-1 个字符 | 字符数+ 2 字节额外开销 |
说明:如果在使用 char(n)或 varchar(n)类型时未指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。
统一字符编码字符串类型
统一编码字符串类型 | 说明 | 存储空间 |
---|
nchar(n) | 固定长度的统一编码字符串类型,n 表示字符串的最大长度,取值范围为 1 ~ 4000 | 2n 字节。当实际字符串所需空间小于 2n 时,系统自动在后边补空格 |
nvarchar(n) | 可变长度的统一编码字符串类型,n 表示字符串的最大长度,取值范围为 1 ~ 4000 | 2*字符数+ 2 字节额外开销 |
ntext | 最多可存储 230-1 (1,073,741,823) 个统一字符编码的字符 | 每个字符 2 个字节 |
nvarchar(max) | 最多可存储 230-1 个统一字符编码的字符 | 2*字符数+ 2 字节额外开销 |
二进制字符串类型
二进制字符串类型 | 说明 | 存储空间 |
---|
binary(n) | 固定长度的二进制数据,n 的取值范围为 1 ~ 8000 | n 字节 |
varbinary(n) | 可变长度的二进制数据,n 的取值范围为 1 ~ 8000。 | 字符数+ 2 字节额外开销 |
image | 可变长度的二进制数据,最多为 231-1 (2,147,483,647)个十六进制数字 | 每个字符 1 个字节 |
varbinary(max) | 可变长度的二进制数据,最多为 231-1 (2,147,483,647)个十六进制数字 | 字符数+ 2 字节额外开销 |
日期时间类型
日期时间类型 | 说明 | 存储空间 |
---|
date | 定义一个日期,范围为 到 。字符长度 10 位,默认格式为:YYYY-MM-DD。YYYY 表示 4 位年份数字,范围从 0001 到 9999;MM 表示 2 位月份数字,范围从 01 到 12;DD 表示 2 位日的数字,范围从 01 到 31(最大值取决于具体月份) | 3 字节 |
time[(n)] | 定义一天中的某个时间,该时间基于 24 小时制。默认格式为:hh:mm:ss[.nnnnnnn],范围为 00:00:00.0000000 到 23:59:59.9999999。精确到 100 纳秒。 n 为秒的小数位数,取值范围是 0 到 7 的整数。默认秒的小数位数是 7(100ns) | 3~5 字节 |
datetime | 定义一个采用 24 小时制并带有秒的小数部分的日期和时间,范围为到-,时间范围是 00:00:00 到 23:59:59.997。默认格式为:YYYY-MM-DD hh:mm:ss.nnn,n 为数字,表示秒的小数部分(精确到 0.00333 秒) | 8 字节 |
smalldatetime | 定义一个采用 24 小时制并且秒始终为零(:00)的日期和时间,范围为到。默认格式为:YYYY-MM-DD hh:mm:00。精确到 1 分钟 | 4 字节 |
datetime2 | 定义一个结合了 24 小时制时间的日期。可将该类型看成是 datetime 类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度。默认格式是:YYYY-MM-DD hh:mm:ss[.nnnnnnn],n 为数字,表示秒的小数位数(最多精确到 100 纳秒),默认精度是 7 位小数。该类型的字符串长度最少 19 位(YYYY-MM-DD hh:mm:ss),最多 27 位(YYYY-MM-DD hh:mm:ss.0000000) | 6 ~ 8 字节 |
datetimeoffset | 定义一个与采用 24 小时制并与可识别时区的一日内时间相组合的日期,该数据类型使用户存储的日期和时间(24 小时制)是时区一致的。语法格式为:datetimeoffset [(n)],n 为秒的精度,最大为 7。默认格式为:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+ | -}hh1:mm1],其中 hh1 的取值范围为-14 到 +14,mm1 的取值范围为 00 到 59。该类型的日期范围为到,时间范围为 00:00:00 到 23:59:59.9999999。时区偏移量范围为-14:00 到+14:00。该类型的字符串长度为:最少 26 位(YYYY-MM-DD hh:mm:ss {+ | -}hh:mm),最多 34 位 (YYYY-MM-DD hh:mm:ss.nnnnnnn {+ | -}hh:mm) | 8 ~ 10 字节 |
货币类型
货币类型 | 说明 | 存储空间 |
---|
money | 存储–922,337,203,685,477.5808 到 922,337,203,685,477.5807 范围的数值,精确到小数点后 4 位 | 8 字节 |
smallmoney | 存储-214,748.3648 到 214,748.3647 范围的数值,精确到小数点后 4 位 | 4 字节 |