数据类型
字符串
数据类型
描述
存储
char(n)
固定长度的字符串。最多 8,000 个字符。
长度为n
nchar(n)
国际化固定长度的字符串。最多 4,000 个字符。
长度为n
varchar(n)
可变长度的字符串。最多 8,000 个字符。
最大长度为n
nvarchar(n)
国际化可变长度的字符串。最多 4,000 个字符。
最大长度为n
text
可变长度的字符串。最多 2GB 字符数据。
ntext
国际化可变长度的字符串。最多 2GB 字符数据。
数字 Number 类型
整数型
数据类型
描述
存储
tinyint
允许从 0 到 255 的所有数字。
1 字节
smallint
允许从 -32,768 到 32,767 的所有数字。
2 字节
int
允许从 -2,147,483,648 到 2,147,483,647 的所有数字。
4 字节
bigint
允许介于 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的所有数字。
8 字节
非整数型
数据类型
描述
存储
real
从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。
4 字节
float(n)
从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。 参数 n 指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。
4 或 8 字节
decimal(p,s)
固定精度和比例的数字。p 参数指示可以存储的最大位数 (小数点左侧和右侧),必须是 1 到 38 之间的值,默认是 18。s 参数指示小数点右侧存储的最大位数 ,必须是 0 到 p 之间的值,默认是 0。
5-17 字节
numeric(p,s)
固定精度和比例的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧),必须是 1 到 38 之间的值,默认是 18。s 参数指示小数点右侧存储的最大位数,必须是 0 到 p 之间的值,默认是 0。
5-17 字节
smallmoney
介于 -214,748.3648 和 214,748.3647 之间的货币数据。
4 字节
money
介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。
8 字节
日期 Date 类型
数据类型
描述
存储
datetime
从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。
8 bytes
datetime2
从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。
6-8 bytes
datetimeoffset
与 datetime2 相同,外加时区偏移。
8-10 bytes
smalldatetime
从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。
4 bytes
date
仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。
3 bytes
time
仅存储时间。精度为 100 纳秒。
3-5 bytes
timestamp
存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。
二进制 Binary 类型:
数据类型
描述
存储
bit
允许 0、1 或 NULL
binary(n)
固定长度的二进制数据。最多 8,000 字节。
varbinary(n)
可变长度的二进制数据。最多 8,000 字节。
varbinary(max)
可变长度的二进制数据。最多 2GB 字节。
image
可变长度的二进制数据。最多 2GB。
CAST 和 CONVERT (Transact-SQL)
将表达式由一种数据类型转换为另一种数据类型
CAST ( expression AS data_type [ ( length ) ] )
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
expression
任何有效的表达式。
data_type
目标数据类型。 这包括 xml、bigint 和sql_variant。 不能使用别名数据类型。
length
指定目标数据类型长度的可选整数。 默认值为 30。
style
指定 CONVERT 函数将如何转换 expression 的整数表达式。 对于 NULL 的样式值,则返回 NULL。 data_type 确定范围。
强制转换
SELECT 9.5 AS Original
, CAST(9.5 AS int) AS int --截断
, CAST(9.5 AS decimal(6,2)) AS decimal
, CAST(9.5 AS decimal(6,0)) AS decimal --舍入
SELECT 9.5 AS Original
, CONVERT(int, 9.5) AS int --截断
, CONVERT(decimal(6,2), 9.5) AS decimal
, CONVERT(decimal(6,0), 9.5) AS decimal --舍入
最后编辑于 :2019.04.28 16:53:16
©著作权归作者所有,转载或内容合作请联系作者 【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。