1.字符转换为日期时,Style的使用
1 Style=101时,表示日期字符串为:mm/dd/yyyy格式
2 SELECT CONVERT(datetime,'11/1/2003',101)
3 --结果:2003-11-01 00:00:00.000
4
5 Style=101时,表示日期字符串为:dd/mm/yyyy格式
6 SELECT CONVERT(datetime,'11/1/2003',103)
7 --结果:2003-01-11 00:00:00.000
2./*== 日期转换为字符串 ==*/
1 DECLARE @dt datetime
2 SET @dt='2003-1-11'
3
4 Style=101时,表示将日期转换为:mm/dd/yyyy 格式
5 SELECT CONVERT(varchar,@dt,101)
6 --结果:01/11/2003
7
8 Style=103时,表示将日期转换为:dd/mm/yyyy 格式
9 SELECT CONVERT(varchar,@dt,103)
10 --结果:11/01/2003
3./*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 ==*/
SELECT
CONVERT(varchar,'2003-1-11',101)
--结果:2003-1-11
1 /*--说明
2 SET DATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响
3 但不影响明确指定了style的CONVERT处理。
4 --*/
5
6 --示例 ,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。
7 --设置输入日期顺序为 日/月/年
8 SET DATEFORMAT DMY
9
10 --不指定Style参数的CONVERT转换将受到SET DATEFORMAT的影响
11 SELECT CONVERT(datetime,'2-1-2005')
12 --结果: 2005-01-02 00:00:00.000
13
14 --指定Style参数的CONVERT转换不受SET DATEFORMAT的影响
15 SELECT CONVERT(datetime,'2-1-2005',101)
16 --结果: 2005-02-01 00:00:00.000
17 GO
1 /*--说明
2 如果输入的日期包含了世纪部分,则对日期进行解释处理时
3 年份的解释不受SET DATEFORMAT设置的影响。
4 --*/
5
6 --示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。
7 DECLARE @dt datetime
8
9 --设置SET DATEFORMAT为:月日年
10 SET DATEFORMAT MDY
11
12 --输入的日期中指定世纪部分
13 SET @dt='01-2002-03'
14 SELECT @dt
15 --结果: 2002-01-03 00:00:00.000
16
17 --输入的日期中不指定世纪部分
18 SET @dt='01-02-03'
19 SELECT @dt
20 --结果: 2003-01-02 00:00:00.000
21 GO
1 /*--说明
2 如果输入的日期不包含日期分隔符,那么SQL Server在对日期进行解释时
3 将忽略SET DATEFORMAT的设置。
4 --*/
5
6 --示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT设置下,其解释的结果是一样的。
7 DECLARE @dt datetime
8
9 --设置SET DATEFORMAT为:月日年
10 SET DATEFORMAT MDY
11 SET @dt='010203'
12 SELECT @dt
13 --结果: 2001-02-03 00:00:00.000
14
15 --设置SET DATEFORMAT为:日月年
16 SET DATEFORMAT DMY
17 SET @dt='010203'
18 SELECT @dt
19 --结果: 2001-02-03 00:00:00.000
20
21 --输入的日期中包含日期分隔符
22 SET @dt='01-02-03'
23 SELECT @dt
24 --结果: 2003-02-01 00:00:00.000
1 --以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
2 USE master
3
4 --设置会话的语言环境为: English
5 SET LANGUAGE N'English'
6 SELECT
7 DATENAME(Month,GETDATE()) AS [Month],
8 DATENAME(Weekday,GETDATE()) AS [Weekday],
9 CONVERT(varchar,GETDATE(),109) AS [CONVERT]
10 /*--结果:
11 Month Weekday CONVERT
12 ------------- -------------- -------------------------------
13 March Tuesday Mar 15 2005 8:59PM
14 --*/
15
16 --设置会话的语言环境为: 简体中文
17 SET LANGUAGE N'简体中文'
18 SELECT
19 DATENAME(Month,GETDATE()) AS [Month],
20 DATENAME(Weekday,GETDATE()) AS [Weekday],
21 CONVERT(varchar,GETDATE(),109) AS [CONVERT]
22 /*--结果
23 Month Weekday CONVERT
24 ----------- ------------- ------------------
25 03 星期五 03 3 2017 3:43:48:307PM
26 --*/
TRANSLATE with x
English
Arabic | Hebrew | Polish |
Bulgarian | Hindi | Portuguese |
Catalan | Hmong Daw | Romanian |
Chinese Simplified | Hungarian | Russian |
Chinese Traditional | Indonesian | Slovak |
Czech | Italian | Slovenian |
Danish | Japanese | Spanish |
Dutch | Klingon | Swedish |
English | Korean | Thai |
Estonian | Latvian | Turkish |
Finnish | Lithuanian | Ukrainian |
French | Malay | Urdu |
German | Maltese | Vietnamese |
Greek | Norwegian | Welsh |
Haitian Creole | Persian | |
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back