将一种数据类型的表达式显式转换为另一种数据类型的表达式。CAST和CONVERT提供相似的功能。
Tra
sactSQL语法约定语法
Sy
taxforCASTCASTexpressio
ASdata_typele
gthSy
taxforCONVERTCONVERTdata_typele
gthexpressio
style
参数expressio
任何有效的表达式。data_type作为目标的系统提供数据类型。这包括xml、bigi
t和sql_varia
t。不能使用别名数据类型。有关可用数据类型的详细信息,请参阅数据类型Tra
sactSQL。le
gth
char、
varchar、char、varchar、bi
ary或varbi
ary数据类型的可选参数。对于CONVERT,如果未指定le
gth,则默认为30个字符。style数据格式的样式,用于将datetime或smalldatetime数据转换成字符数据(
char、
varchar、char、varchar、
char或
varchar数据类型),或将已知日期或时间格式的字符数据转换成datetime或smalldatetime数据;或者是字符串格式,用于将float、real、mo
ey或smallmo
ey数据转换成字符数据(
char、
varchar、char、varchar、
char或
varchar数据类型)。如果style为NULL,则返回的结果也为NULL。
注意:注意:
SQLServer支持本主题中列出的样式与CONVERT目标数据类型的所述组合。不支持所有其他样式和组合。请不要使用任何不支持的能保证这些结果的准确性。
样式。如果使用不支持的样式或不支持的样式与目标数据类型的组合,则可能会返回错误或不可靠的结果。所有版本的SQLServer都不
SQLServer通过使用科威特算法来支持阿拉伯样式的日期格式。在下表中,左侧的两列表示将datetime或smalldatetime数据转换为字符数据的style值。style值将加100,可获得包括世纪数位的四位年份yyyy。
不带世纪数位yy1
1
带世纪数位yyyy0或100101
12
标准默认设置美国
输入输出输入输出mo
ddyyyyhhmiAM(或PM)mmddyyyy
3
f234567810111214
102103104105106107
11
ANSI英国法国德国意大利12
yymmddddmmyyddmmyyddmmyyddmo
yymo
ddyyhhmissmo
ddyyyyhhmissmmmAM(或PM)mmddyyyymmddyymmddddmo
yyyyhhmissmmm24hhhmissmmm24hyyyymmddhhmiss24hyyyymmddhhmissmmm24hyyyymmddThhmissmmm(无空格)yyyymmddThhmissmmmZ
1089或10911011111213或11311420或12021或121126
42212
默认设置毫秒美国日本ISO
欧洲默认设置毫秒ODBC规范ODBC规范(带毫秒)ISO8601
127
67
带时区Z的ISO8601。(无空格)
130
122
回历回历
5
5
ddmo
yyyyhhmissmmmAMddmmyyhhmissmmmAM
131
1
这些样式值将返回不确定的结果。包括所有yy(不带世纪数位)样式和一部分yyyy(带世纪r