| 数据类型 | 范围 | 用途 |
| 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%,默默的坚持下去吧!:-)
浙公网安备 33010602011771号