格式:

CONVERT
(data_type,expression
[
,style
]
)

 说明:
 此样式一般在时间类型(
datetime
smalldatetime
)与字符串类型(
nchar
nvarchar
char
varchar
)
 相互转换的时候才用到.

 例子:

SELECT
?
(
(
30
),
getdate
(),
101
)?now
 结果为:
 now

--
-------------------------------------

|
09
/
15
2001


===================================================================

 style数字在转换时间时的含义如下:


----------------------------------------------------------------------------------------------------------

Style(2位表示年份)???
|
??Style(4位表示年份)???
???输入输出格式????????????????????????????????????


0
???????????????????????????????
?
100
???????????????????????????
???mon?dd?yyyy?hh:miAM(或PM)??????????????

1
??
???美国????????????????
???mm
/
dd
yy???????????????????????????????????????

2
102
????ANSI???????????????
???yy
-
mm
dd????????????????????????????????????????

3
103
????英法????????????????
???dd
4
104
????德国????????????????
???dd.mm.yy????????????????????????????????????????

5
105
????意大利?????????????
yy????????????????????????????????????????

6
106
????????????????????????????
???dd?mon?yy????????????????????????????????????????

7
107
???mon?dd,yy????????????????????????????????????????

8
108
???hh:mm:ss?????????????????????????????????????????

9
109
???mon?dd?yyyy?hh:mi:ss:mmmmAM(或PM)

10
?????????????????????????????
110
????美国?????????????????
yy?????????????????????????????????????????

11
111
????日本?????????????????
12
112
????ISO??????????????????
???yymmdd???????????????????????????????????????????

13
113
?????欧洲默认值?????
???dd?mon?yyyy?hh:mi:ss:mmm(24小时制)??

14
114
???hh:mi:ss:mmm(24小时制)????????????????????

20
120
?????ODBC?规范?????
????yyyy
dd?hh:mi:ss(24小时制)?????????

21
???
121
dd?hh:mi:ss:mmm(24小时制)?

 语句及查询结果:

GETDATE
):?
05
16
2006
:57AM

05
16
06

06.05
.
16.05
-
:
57
46
:827AM

06
060516
937
967
2006
47
47.157
22
?AM

23
24
25
47.250
2006.05
49
:437AM

20060516
513
547
49.700
126
16T10:
49.827
130
18
?????????????
1427
:907AM

131
18
04
:920AM

 说明:
 使用?
:


?(?data_type?
?(?length?)?
?,?expression?
?)

 参数
 expression

 是任何有效的?Microsoft??SQL?Server??表达式。。?

 data_type

 目标系统所提供的数据类型,包括?
bigint
?和?sql_variant。不能使用用户定义的数据类型。
 length


、
binary
?或?
varbinary
?数据类型的可选参数。?

 style

 日期格式样式,借以将?
?数据转换为字符数据(
?数据类型);或者字符串格式样式,借以将?
float
real
money
smallmoney
?数据类型)。

 SQL?Server?支持使用科威特算法的阿拉伯样式中的数据格式。

 在表中,左侧的两列表示将?
?转换为字符数据的?style?值。给?style?值加?
,可获得包括世纪数位的四位年份?(yyyy)。

 不带世纪数位?(yy)?带世纪数位?(yyyy)?
 标准?
 输入
输出
**
?

?或?
?(
*
)??默认值?mon?dd?yyyy?hh:miAM(或?PM)?

?美国?mm
yyyy?

?ANSI?yy.mm.dd?

?英国
法国?dd
yy?

?德国?dd.mm.yy?

?意大利?dd
?
?dd?mon?yy?

?mon?dd,?yy?

?hh:mm:ss?

)??默认值?
+
?毫秒?mon?dd?yyyy?hh:mi:ss:mmmAM(或?PM)?

?日本?yy
dd?

?ISO?yymmdd?

)??欧洲默认值?
?毫秒?dd?mon?yyyy?hh:mm:ss:mmm(24h)?

?hh:mi:ss:mmm(24h)?

)??ODBC?规范?yyyy
dd?hh:mm:ss
.fff
)??ODBC?规范(带毫秒)?yyyy
(
***
)?ISO8601?yyyy
dd?Thh:mm:ss.mmm(不含空格)?

130
?Hijri
****
?dd?mon?yyyy?hh:mi:ss:mmmAM?

131
?dd
yy?hh:mi:ss:mmmAM?




????默认值(style?
、
)始终返回世纪数位?(yyyy)。

?当转换为?datetime时输入;当转换为字符数据时输出。

?专门用于?XML。对于从?datetime或?
?到?
character
?数据的转换,输出格式如表中所示。对于从?
?数据的转换,输出等同于?style?
。对于从?
。

Hijri?是具有几种变化形式的日历系统,Microsoft??SQL?Server??
2000
?使用其中的科威特算法。


 ?重要??默认情况下,SQL?Server?根据截止年份?
2049
?解释两位数字的年份。即,两位数字的年份?
?被解释为?
,而两位数字的年份?
50
1950
。许多客户端应用程序(例如那些基于?OLE?自动化对象的客户端应用程序)都使用?
2030
?作为截止年份。SQL?Server?提供一个配置选项("两位数字的截止年份"),借以更改?SQL?Server?所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。


 当从?
?转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从?
?值进行转换时,可以通过使用适当的?
?数据类型长度来截断不需要的日期部分。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|