数据类型 | 范围 | 用途 |
int | -2^31 到 2^31-1 | 整数类型 eg. int a = 22; |
smallint | -2^15 到 2^15-1 | 整数类型 eg. int a = 20; |
tinyint | 0 到 255 | 整数类型 eg. int a = 255; |
bigint | -2^63 到 2^63-1 | 整数类型 eg. int a = 2555; |
decimal | -10^38 到 10^38-1 | 浮点类型 eg. decimal() = |
numeric | -10^38 到 10^38-1 | 浮点类型 eg. numeric() = |
float | -1.79E+308 到 -2.23E-308 和 2.23E-308 到 1.79E+308 | 浮点类型 eg. float a = 2.2 |
real | –3.40E+38 到 –1.18E-38 和 1.18E-38 到 3.4E+38 | 浮点类型 eg. float a = 2.2 |
money | -922,337,203,685,477.5808 到 922,337,203,685,477.5808 | 货币类型 |
smallmoney | -214,748.3648 到 214,748.648 | 货币类型 |
datetime | 1753-1-1 到 9999-12-31 | 日期和时间类型 |
smalldatetime | 1900-1-1 到 2079-6-6 | 日期和时间类型 |
DATE | 只记录日期数据 DATE = GETDATE() 2010-08-07 | |
TIME | 只记录时间,精确100纳秒 TIME = GETDATE()00:14:36.2000000 | |
DATETIME2 | 不包含时区,精确100纳秒 | |
DATETIMEOFFSET | 包含时区,精确100纳秒 | |
char(n) | 1<= n <= 8000 | 固定长度字符数据 |
nchar | <=4000字符 | 固定长度Unicode数据 |
varchar(n) | 1<= n <= 8000 | 可变长度字符类型 |
nvarchar | <=4000字符 | 可变长度Unicode数据 |
text | 2^31-1 个字符 | 字符串 |
ntext | 2^31-1 个字符 | 可变长度Unicode数据 |
bit | 0 或者 1 | boolean类型 |
image | 2^31-1位 | 可变长度二进制数据以存储图片 |
binary | <=8000位 | 固定长度二进制数据 |
varbinary | <=8000位 | 可变长度二进制数据 |
cursor | 存储变量或者存储过程OUTPUT参数 | 光标引用 MSDN |
sql_variant | <=8016位 | 查看MSDN解释 |
timestamp | 存储大小为8位 | 数据库中唯一数字 |
uniqueidentifier | 16位GUID | 使用NewID()生成 |
table | 表结构,如UDF返回table | 返回表的函数或者返回临时表 |
xml | XML实例和XML类型变量 | 存储和返回XML值 |
以上红色部分为 SQL2008 新增的数据类型 ,SQL2005中不存在
下面为几个新增数据类型测试
--只记?录?日?期?数?据? DECLARE @date1 DATE = GETDATE() PRINT @date1 --只?记?录?时?间?,精?确?纳?秒? DECLARE @date5 TIME = GETDATE() PRINT @date5 --记?录?日?期?和?时?间?,精?确?纳?秒? DECLARE @date2 DATETIME = GETDATE() PRINT @date2 --不?包?含?时?区?,精?确?纳?秒? DECLARE @date3 DATETIME2 = GETDATE() PRINT @date3 --包?含?时?区?,精?确?纳?秒? DECLARE @date4 DATETIMEOFFSET = GETDATE() PRINT @date4 PRINT SWITCHOFFSET(@date4,'-07:00') --设置时区 PRINT TODATETIMEOFFSET(@date4,'-08:00')
记录学习点滴...,坚持每天让自己的技能增加1%,默默的坚持下去吧!:-)