CONVERT
函数
[
数据类型转换
]
--
------------------------------------------------------------------------------
功能 返回转换成提供的数据类型的表达式。语法
CONVERT
( data type, expression
[
, format-style
]
)参数 data type 表达式将转换成的数据类型。expression 要转换的表达式。format
-
style 对于将字符串转换为日期或时间数据类型以及相反的转换过程,format
-
style 是描述要使用的日期格式字符串的样式代码。 format
-
style 参数的值具有下列含义:不含世纪 (yy) 含世纪 (yyyy) 输出
-
0
或
100
Mmm dd yyyy hh:nn:ss:sss AM(或 PM)
1
101
mm
/
dd
/
yy
[
yy
]
2
102
[
yy
]
yy.mm.dd
3
103
dd
/
mm
/
yy
[
yy
]
4
104
dd.mm.yy
[
yy
]
5
105
dd
-
mm
-
yy
[
yy
]
6
106
dd Mmm yy
[
yy
]
7
107
Mmm dd, yy
[
yy
]
8
108
hh:nn:ss
-
9
或
109
Mmm dd yyyy hh:nn:ss:sssAM(或 PM)
10
110
mm
-
dd
-
yy
[
yy
]
11
111
[
yy
]
yy
/
mm
/
dd
12
112
[
yy
]
yymmdd
13
113
dd Mmm yyy hh:nn:ss:sss(
24
小时制,欧洲缺省时间
+
毫秒,
4
位数年份)
14
114
hh:nn:ss:sss(
24
小时制)
20
120
yyyy
-
mm
-
dd hh:nn:ss:sss(
24
小时制,ODBC 规范,
4
位数年份)
21
121
yyyy
-
mm
-
dd hh:nn:ss.sss(
24
小时制,ODBC 规范加毫秒,
4
位数年份) 如果未提供 format
-
style 参数,则使用样式代码
0
。有关每种输出符号(如 Mmm)生成的样式的描述,请参见 DATE_FORMAT 选项
[
compatibility
]
。标准和兼容性 SQL
/
92
供应商扩展。 SQL
/
99
供应商扩展。 Sybase 与 Adaptive Server Enterprise 兼容。 另请参见
CAST
函数
[
数据类型转换
]
示例 下列语句说明了格式样式的用法:
SELECT
CONVERT
(
CHAR
(
20
), order_date,
104
)
FROM
sales_orderorder_date
16.03
.
2000
20.03
.
2000
23.03
.
2000
25.03
.
2000
SELECT
CONVERT
(
CHAR
(
20
), order_date,
7
)
FROM
sales_orderorder_date Mar
16
,
00
Mar
20
,
00
Mar
23
,
00
Mar
25
,
00
下面的语句说明了到整数的转换,并返回值
5
:
SELECT
CONVERT
(
integer
,
5.2
)
CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在SQL Server中 将日期格式化.SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。在表中,左侧的两列表示将
datetime
或
smalldatetime
转换为字符数据的 style 值。给 style 值加
100
,可获得包括世纪数位的四位年份 (yyyy)。不带世纪数位 (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
6
106
-
dd mon yy
7
107
-
mon dd, yy
8
108
-
hh:mm:ss
-
9
或
109
(
*
) 默认值
+
毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10
110
美国 mm
-
dd
-
yy
11
111
日本 yy
/
mm
/
dd
12
112
ISO yymmdd
-
13
或
113
(
*
) 欧洲默认值
+
毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14
114
-
hh:mi:ss:mmm(24h)
-
20
或
120
(
*
) ODBC 规范 yyyy
-
mm
-
dd hh:mm:ss
[
.fff
]
-
21
或
121
(
*
) ODBC 规范(带毫秒) yyyy
-
mm
-
dd hh:mm:ss
[
.fff
]
-
126
(
***
) ISO8601 yyyy
-
mm
-
dd Thh:mm:ss:mmm(不含空格)
-
130
*
科威特 dd mon yyyy hh:mi:ss:mmmAM
-
131
*
科威特 dd
/
mm
/
yy hh:mi:ss:mmmAM
*
默认值(style
0
或
100
、
9
或
109
、
13
或
113
、
20
或
120
、
21
或
121
)始终返回世纪数位 (yyyy)。
**
当转换为
datetime
时输入;当转换为字符数据时输出。
***
专门用于 XML。对于从
datetime
或
smalldatetime
到
character
数据的转换,输出格式如表中所示。对于从
float
、
money
或
smallmoney
到
character
数据的转换,输出等同于 style
2
。对于从
real
到
character
数据的转换,输出等同于 style
1
。 重要 默认情况下,SQL Server 根据截止年份
2049
解释两位数字的年份。即,两位数字的年份
49
被解释为
2049
,而两位数字的年份
50
被解释为
1950
。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用
2030
作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。 当从
smalldatetime
转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从
datetime
或
smalldatetime
值进行转换时,可以通过使用适当的
char
或
varchar
数据类型长度来截断不需要的日期部分。下表显示了从
float
或
real
转换为字符数据时的 style 值。值 输出
0
(默认值) 最大为
6
位数。根据需要使用科学记数法。
1
始终为
8
位值。始终使用科学记数法。
2
始终为
16
位值。始终使用科学记数法。 在下表中,左列表示从
money
或
smallmoney
转换为字符数据时的 style 值。值 输出
0
(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如
4235.98
。
1
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如
3
,
510.92
。
2
小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如
4235.9819
。 使用
CONVERT
:
CONVERT
(data_type
[
(length)
]
, expression
[
, style
]
)
select
CONVERT
(
varchar
,
getdate
(),
120
)
2004
-
09
-
12
11
:
06
:
08
select
replace
(
replace
(
replace
(
CONVERT
(
varchar
,
getdate
(),
120
),/
'
-/
'
,/
'
/
'
),/
'
/
'
,/
'
/
'
),/
'
:/
'
,/
'
/
'
)
20040912110608
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
111
)
2004
/
09
/
12
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
112
)
20040912
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
102
)
2004.09
.
12
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
101
)
09
/
12
/
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
103
)
12
/
09
/
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
104
)
12.09
.
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
105
)
12
-
09
-
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
106
)
12
09
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
107
)
09
12
,
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
108
)
11
:
06
:
08
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
109
)
09
12
2004
1
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
110
)
09
-
12
-
2004
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
113
)
12
09
2004
1
select
CONVERT
(
varchar
(
12
) ,
getdate
(),
114
)
11
:
06
:
08.177
转载于:https://www.cnblogs.com/deepwishly/archive/2010/05/10/2551238.html
相关资源:SQL CONVERT转化函数使用方法小结