表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运算后返回的值的类型

数据类型转换函数

(以下两种函数功能类似,但是convert在进行日期转换时还提供了丰富的样式,cast只能进行普通的日期转换



函数名称

参数

示例

描述

convert

(数据类型[(长度)],表达式[,样式])

select convert(nvarchar,123) 返回123

select N'年龄:'+convert(nvarchar,23)

返回 年龄:23(注意:如果想要在结果中正确显示中文需要在给定的字符串前面加上N,加N是为了使数据库识别 Unicode字符)

select  convert(nvarchar ,getdate())

返回04 28 2009 10:21PM

select  convert(nvarchar ,getdate(),101)

返回04/28/2009

select  convert(nvarchar ,getdate(),120)

返回2009-04-28 12:22:21

select  convert(nvarchar(10) ,getdate(),120)

返回2009-04-28

将一种数据类型的表达式显式转换为另一种数据类型的表达式。

长度:如果数据类型允许设置长度,可以设置长度,例如

varchar(10)

样式:用于将日期类型数据转换为字符数据类型的日期格式的样式。见下表

cast

(表达式 as 数据类型[(长度)])

select cast(123 as nvarchar)返回123

select N'年龄:'+cast(23 as nvarchar)

返回 年龄:23

将一种数据类型的表达式显式转换为另一种数据类型的表达式。



 

日期类型数据转换为字符数据类型的日期格式的部分样式表 

不带世纪数位 (yy)  

带世纪数位 (yyyy)

标准

输入/输出

-

0 或 100

默认设置

mon dd yyyy hh:miAM(或 PM)

1

101

美国

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

英国/法国

dd/mm/yy

4

104

德国

dd.mm.yy

5

105

意大利

dd-mm-yy

 

120

ODBC 规范

yyyy-mm-dd hh:mi:ss(24h)












当两个不同数据类型的表达式用运算符组合后,数据类型优先级规则指定将优先级较低的数据类型优先转换为优先级较高的数据类型。如果此转换不是所支持的隐式转换,则返回错误。当两个操作数表达式具有相同的数据类型时,运算的结果便为该数据类型。如果需要把优先级高的数据类型转换为优先级低的数据类型时需要使用数据类型转换函数进行显示转换。

SQL Server 2005 对数据类型使用以下优先级顺序(先高后低):

1、用户定义数据类型(最高)2、sql_variant 3、xml 4、datetime 5、smalldatetime 6、float 7、real  8、decimal 9、money  10、smallmoney  11、bigint 12、int 13、smallint 14、tinyint 15、bit 16、ntext 17、text 18、image 19、timestamp 20、uniqueidentifier

21、nvarchar(包括 nvarchar(max))22、nchar 23、varchar (包括 varchar(max))24、char 25、varbinary(包括 varbinary(max))26、binary(最低)

更多:可以使用的 style 值:

Style ID

Style 格式

100 或者 0

mon dd yyyy hh:miAM (或者 PM)

101

mm/dd/yy

102

yy.mm.dd

103

dd/mm/yy

104

dd.mm.yy

105

dd-mm-yy

106

dd mon yy

107

Mon dd, yy

108

hh:mm:ss

109 或者 9

mon dd yyyy hh:mi:ss:mmmAM(或者 PM)

110

mm-dd-yy

111

yy/mm/dd

112

yymmdd

113 或者 13

dd mon yyyy hh:mm:ss:mmm(24h)

114

hh:mi:ss:mmm(24h)

120 或者 20

yyyy-mm-dd hh:mi:ss(24h)

121 或者 21

yyyy-mm-dd hh:mi:ss.mmm(24h)

126

yyyy-mm-ddThh:mm:ss.mmm(没有空格)

130

dd mon yyyy hh:mi:ss:mmmAM

131

dd/mm/yy hh:mi:ss:mmmAM

相关文章:

SQL_Server_2005_函数大全(描述及实例)

SQL_Server_2005_字符串函数(描述及实例)

SQL_Server_2005_日期和时间函数(描述及实例)

SQL_Server_2005_数学函数(描述及实例)

SQL_Server_2005_数据类型转换函数(描述及实例)