SQL Server 数据类型及转换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

decimal 和numeric

https:///zh-cn/library/ms187746.aspx

SQL Server (starting with 2008)

decimal[ (p[ ,s] )] 和numeric[ (p[ ,s] )]

numeric在功能上等价于decimal,有效值的范围为- 10^38 +1 到10^38 –1,(1-38,默认18)。p固定精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数;

s小数位数。。

在Transact-SQL 语句中,带有小数点的常量将自动转换为numeric数据值,而且使用必需的最小精度和小数位数。例如,常量12.345 将被转换为精度为5,小数位数为 3 的numeric值。

(1)Float =>decimal或numeric

在将float 值或实数值转换为decimal 或numeric 类型时,decimal 值不会超过17 位小数。任何小于5E-18 的float 值总是会转换为0。

int、bigint、smallint 和tinyint

https:///zh-cn/library/ms187745.aspx

SQL Server (starting with 2008)

仅当参数表达式为bigint数据类型时,函数才返回bigint。SQL Server 不会自动将其他整数数据类型(tinyint、smallint和int)提升到bigint。

查询中的类似表达式有时可能会生成不同的结果。如果查询不是自动参数化的,则将常量值转换为指定的数据类型之前,首先将其转换为numeric,该数据类型的精度很大足以保存常量的值。例如,常量值1 转换为numeric (1, 0),常量值250 转换为numeric (3, 0)。

Int ->tinyint : 发生数据类型 tinyint 的算术溢出错误,值 = 333。语句已终止

float[(n)]

其中n为用于存储float数值尾数的位数(以科学记数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须是介于1和53之间的某个值。n的默认值为53。

datetime

用于定义一个与采用24 小时制并带有秒小数部分的一日内时间相组合的日期。

https:///zh-cn/library/ms187819.aspx

对于新的工作,请使用time、date、datetime2和datetimeoffset数据类型。这些类型符合SQL 标准。它们更易于移植。time、datetime2和datetimeoffset提供更高精度的秒数。

Datetime日期范围1753 年1 月1 日到9999 年12 月31 日

时间范围00:00:00 到23:59:590.997 YYYY-MM-DD hh-mm-ss[.mmm]

目标数据格式的样式在下列类型间转换时才有效

(1)datetime 或smalldatetime 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或nvarchar 数据类型)

(2)已知日期或时间格式的字符数据转换成datetime 或smalldatetime 数据,或是字符串格式

(3)用于将float、real、money 或smallmoney 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或nvarchar 数据类型)。

char 和varchar

char [ ( n ) ]

固定长度,非Unicode 字符串数据。n用于定义字符串长度,并且它必须为1 到8,000 之间的值。存储大小为n字节。char的ISO 同义词为character。

varchar [ ( n | max ) ]

可变长度,非Unicode 字符串数据。n用于定义字符串长度,并且它可以为1 到8,000 之间的值。max指示最大存储大小是2^31-1 个字节(2 GB)。存储大小为所输入数据的实际长度+ 2 个字节。varchar的ISO 同义词为charvarying或charactervarying。

Varchar(n) n修改变小,数据库终止操作,将截断

Money->varchar(n)整数长度加小数点加两位小数长度<=n,截断小数,可转换;否则,报错。Varchar(n) -> money 非数值的varchar无法转换

Varchar -> datetime: 正常格式会被转换,无效字符则转换失败。

Datetime->varchar(n): 字段会被截断

Varchar(n) -> int 对应的数字大于int会溢出错误;非数字类型,转换失败。

Int ->varchar(n) int的长度>n 转换为’*’。

Transact-SQL 保留关键字

https:///zh-cn/library/ms189822

工作流关键字

默认列:config文件

相关文档
最新文档