格式:
CONVERT
(data_type,expression
[
,style
]
)说明:此样式一般在时间类型(
datetime
,
smalldatetime
)与字符串类型(
nchar
,
nvarchar
,
char
,
varchar
)相互转换的时候才用到.例子:
SELECT
CONVERT
(
varchar
(
30
),
getdate
(),
101
) now结果为:now
--
-------------------------------------
|
09
/
15
/
2001
===================================================================
style数字在转换时间时的含义如下:
--
----------------------------------------------------------------------------------------------------------
Style(2位表示年份)
|
Style(4位表示年份)
|
输入输出格式
--
----------------------------------------------------------------------------------------------------------
0
|
100
|
mon dd yyyy hh:miAM(或PM)
--
----------------------------------------------------------------------------------------------------------
1
|
101
美国
|
mm
/
dd
/
yy
--
----------------------------------------------------------------------------------------------------------
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:mmmmAM(或PM)
--
----------------------------------------------------------------------------------------------------------
10
|
110
美国
|
mm
-
dd
-
yy
--
----------------------------------------------------------------------------------------------------------
11
|
111
日本
|
yy
/
mm
/
dd
--
----------------------------------------------------------------------------------------------------------
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
-
mm
-
dd hh:mi:ss(24小时制)
--
----------------------------------------------------------------------------------------------------------
21
|
121
|
yyyy
-
mm
-
dd hh:mi:ss:mmm(24小时制)
--
----------------------------------------------------------------------------------------------------------
语句及查询结果:
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
0
):
05
16
2006
10
:57AM
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
1
):
05
/
16
/
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
2
):
06.05
.
16
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
3
):
16
/
05
/
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
4
):
16.05
.
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
5
):
16
-
05
-
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
6
):
16
05
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
7
):
05
16
,
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
8
):
10
:
57
:
46
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
9
):
05
16
2006
10
:
57
:
46
:827AM
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
10
):
05
-
16
-
06
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
11
):
06
/
05
/
16
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
12
):
060516
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
13
):
16
05
2006
10
:
57
:
46
:
937
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
14
):
10
:
57
:
46
:
967
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
20
):
2006
-
05
-
16
10
:
57
:
47
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
21
):
2006
-
05
-
16
10
:
57
:
47.157
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
22
):
05
/
16
/
06
10
:
57
:
47
AM
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
23
):
2006
-
05
-
16
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
24
):
10
:
57
:
47
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
25
):
2006
-
05
-
16
10
:
57
:
47.250
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
100
):
05
16
2006
10
:57AM
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
101
):
05
/
16
/
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
102
):
2006.05
.
16
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
103
):
16
/
05
/
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
104
):
16.05
.
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
105
):
16
-
05
-
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
106
):
16
05
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
107
):
05
16
,
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
108
):
10
:
57
:
49
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
109
):
05
16
2006
10
:
57
:
49
:437AM
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
110
):
05
-
16
-
2006
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
111
):
2006
/
05
/
16
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
112
):
20060516
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
113
):
16
05
2006
10
:
57
:
49
:
513
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
114
):
10
:
57
:
49
:
547
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
120
):
2006
-
05
-
16
10
:
57
:
49
SELECT
CONVERT
(
varchar
(
100
),
GETDATE
(),
121
):
2006
-
相关文章
DATEPART
返回代表指定日期的指定日期部分的整数。
语法
DATEPART ( datepart ,date )
参数
datepart
是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。
日期部分缩写yearyy, yyyyquarterqq, qmonthmm, mdayofyeardy, ydaydd, dweekwk, wwweekdaydwHourhhminutemi, nsecondss, smillisecondms
week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。
weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。
date
是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。
如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。
返回类型
int
注释
DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。
示例
GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。
SELECT GETDATE() AS 'Current Date'
GO
下面是结果集:
Current Date
---------------------------
Feb 18 1998 11:46PM
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO
下面是结果集:
Month Number
------------
2
此示例假设日期是 5 月 29 日。
SELECT DATEPART(month, GETDATE())
GO
下面是结果集:
-----------
5
(1 row(s) affected)
在此示例中,以数字表示日期。注意:SQL Server 将 0 解释为 01/01/1900。
SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)
下面是结果集:
----- ------ ------
1 1 1900