T-SQL - 数据类型

SQL Server 数据类型是一个属性,它指定任何对象的数据类型。 SQL Server 中的每个列、变量和表达式都有相关的数据类型。 这些数据类型可以在创建表时使用。 您可以根据需要为表列选择特定的数据类型。

SQL Server 提供了七个类别,包括其他类别的数据类型供使用。


精确数值类型

Type From To
bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807
int -2,147,483,648 2,147,483,647
smallint -32,768 32,767
tinyint 0 255
bit 0 1
decimal -10^38 +1 10^38 –1
numeric -10^38 +1 10^38 –1
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
smallmoney -214,748.3648 +214,748.3647

数字和小数是固定精度和小数位数据类型,在功能上是等效的。


近似数值类型

Type From To
Float -1.79E + 308 1.79E + 308
Real -3.40E + 38 3.40E + 38

日期和时间类型

Type From To

datetime(3.33 milliseconds accuracy)

Jan 1, 1753 Dec 31, 9999

smalldatetime(1 minute accuracy)

Jan 1, 1900 Jun 6, 2079

date(1 day accuracy. Introduced in SQL Server 2008)

Jan 1, 0001 Dec 31, 9999

datetimeoffset(100 nanoseconds accuracy. Introduced in SQL Server 2008)

Jan 1, 0001 Dec 31, 9999

datetime2(100 nanoseconds accuracy. Introduced in SQL Server 2008)

Jan 1, 0001 Dec 31, 9999

time(100 nanoseconds accuracy. Introduced in SQL Server 2008)

00:00:00.0000000 23:59:59.9999999

Character 字符串

序号 类型 & 说明
1

char

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

2

varchar

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

3

Varchar (max)

最大长度为 231 个字符的可变长度非 Unicode 数据(在 SQL Server 2005 中引入)。

4

text

最大长度为 2,147,483,647 个字符的可变长度非 Unicode 数据


Unicode 字符串

序号 类型 & 说明
1

nchar

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

2

nvarchar

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

3

Nvarchar (max)

最大长度为 230 个字符的可变长度 Unicode 数据(在 SQL Server 2005 中引入)。

4

ntext

可变长度 Unicode 数据,最大长度为 1,073,741,823 个字符。


二进制字符串

序号 类型 & 说明
1

binary

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

2

varbinary

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

3

varbinary(max)

最大长度为 231 字节的可变长度二进制数据(在 SQL Server 2005 中引入)。

4

image

可变长度二进制数据,最大长度为 2,147,483,647 字节。


其他数据类型

  • sql_variant − 存储各种 SQL Server 支持的数据类型的值,文本、ntext 和时间戳除外。

  • timestamp − 存储一个数据库范围的唯一编号,每次更新一行时都会更新该编号。

  • uniqueidentifier − 存储全局唯一标识符 (GUID)。

  • xml − 存储 XML 数据。 您可以将 XML 实例存储在列或变量中(在 SQL Server 2005 中引入)。

  • cursor − 对游标的引用。

  • table − 存储结果集以供以后处理。

  • hierarchyid − 一种可变长度的系统数据类型,用于表示层次结构中的位置(在 SQL Server 2008 中引入)。