SQL CONVERT FUNCTION CONVERT DATETIME TO STRING

1.   語法

CONVERT( data_type [ ( length ) ] , expression [ , style ] ) 

data_type
目标数据类型。这包括xml bigint,和sql_variant不能使用别名数据类型。

长度
指定目标数据类型长度的可选整数。默认值为 30

样式
是一个整数表达式指定如何将转换 CONVERT 函数表达式

 

2.  Date 和 Time 样式

表达式是日期或时间数据类型,样式可以是下表中显示的值之一。其他值作为0 进行处理。开头SQL Server 2012当从转换时,支持的唯一样式日期和时间类型datetimeoffset0 1所有其他转换样式均返回错误 9809

SQLServer 使用科威特算法来支持阿拉伯样式的日期格式。

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

不带世纪 (yy) (1)

带世纪数位 (yyyy)

Standard

输入/输出 (3)

-

0 or 100 (1,2)

datetime smalldatetime 的默认值

mon dd yyyy hh:miAM(或 PM

1

101

美国

1 = mm/dd/yy

101 = mm/dd/yyyy

2

102

ANSI

2 = yy.mm.dd

102 = yyyy.mm.dd

3

103

英国/法国

3 = dd/mm/yy

103 = dd/mm/yyyy

4

104

德语

4 = dd.mm.yy

104 = dd.mm.yyyy

5

105

意大利语

5 = dd-mm-yy

105 = dd-mm-yyyy

6

106 (1)

-

6 = dd mon yy

106 = dd mon yyyy

7

107 (1)

-

7 = Mon dd, yy

107 = Mon dd, yyyy

8

108

-

hh:mi:ss

-

9 or 109 (1,2)

默认格式 + 毫秒

mon dd yyyy hh:mi:ss:mmmAM(或 PM

10

110

USA

10 = mm-dd-yy

110 = mm-dd-yyyy

11

111

日本

11 = yy/mm/dd

111 = yyyy/mm/dd

12

112

ISO

12 = yymmdd

112 = yyyymmdd

-

13 or 113 (1,2)

欧洲默认格式 + 毫秒

dd mon yyyy hh:mi:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 or 120 (2)

ODBC 规范

yyyy-mm-dd hh:mi:ss(24h)

-

21 or 121 (2)

timedatedatetime2 datetimeoffset ODBC 规范(带毫秒)默认值

yyyy-mm-dd hh:mi:ss.mmm(24h)

-

126 (4)

ISO8601

yyyy-mm-ddThh:mi:ss.mmm(无空格)

注意︰时毫秒的值 (mmm) 0,则不显示毫秒值。例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”

-

127(6, 7)

带时区 Z ISO8601

yyyy-mm-ddThh:mi:ss.mmmZ(无空格)

注意︰时毫秒的值 (mmm) 0,则不显示毫秒值。例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”

-

130 (1,2)

Hijri (5)

dd mon yyyy hh:mi:ss:mmmAM

在此样式中,mon 表示完整月份名称的多标记回历 unicode 表示形式。该值在 SSMS 的默认 US 安装中将不会正确呈现。

-

131 (2)

Hijri (5)

dd/mm/yyyy hh:mi:ss:mmmAM

1这些样式的值将返回具有不确定性的结果。包括所有(yy)(不带世纪数位)样式和一部分 (yyyy)(带世纪数位)样式。

2 The default values (style0 or 1009 or 10913 or 11320 or 120,and 21 or 121) always return the century (yyyy).

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

4专用于 XML有关从转换datetimesmalldatetime为字符数据时,输出格式是上表中所述。

5回历是具有几种变体的日历系统。 SQL Server 使用科威特算法。

6到字符数据从强制转换时,才支持datetimesmalldatetime仅表示的字符数据的日期或仅时间组件时被强制转换为datetimesmalldatetime数据类型,未指定的时间组件设置为 00:00:00.000,和未指定的日期部分设置为 1900-01-01

7可选时区指示符,Z,用于轻松地映射 XML datetime到的时区信息的值SQL Server datetime不具有任何时区的值。 Z 是时区 UTC-0 的指示符。其他时区则以 + - 方向的 HH:MM 偏移量来指示。例如:2006-12-12T23:45:12-08:00

 

当你将转换为字符数据从smalldatetime,包括秒或毫秒的样式显示在这些位置的零。当从转换情况下可以截断不需要的日期部分datetimesmalldatetime通过使用适当的值charvarchar数据类型长度。

转换为datetimeoffset从字符数据,包括时间样式,时区偏移量追加到结果。

 

 

 

 

 

 

 

 

3.   语句结果
SELECT CONVERT(varchar(100), GETDATE(), 0) 07 152009 4:06PM

SELECT CONVERT(varchar(100), GETDATE(), 1)07/15/09
SELECT CONVERT(varchar(100), GETDATE(), 2)09.07.15
SELECT CONVERT(varchar(100), GETDATE(), 3)15/07/09
SELECT CONVERT(varchar(100), GETDATE(), 4)15.07.09
SELECT CONVERT(varchar(100), GETDATE(), 5)15-07-09
SELECT CONVERT(varchar(100), GETDATE(), 6) 15 0709
SELECT CONVERT(varchar(100), GETDATE(), 7) 0715, 09
SELECT CONVERT(varchar(100), GETDATE(), 8)16:06:26
SELECT CONVERT(varchar(100), GETDATE(), 9) 07 152009 4:06:26:513PM
SELECT CONVERT(varchar(100), GETDATE(), 10)07-15-09
SELECT CONVERT(varchar(100), GETDATE(), 11)09/07/15
SELECT CONVERT(varchar(100), GETDATE(), 12)090715
SELECT CONVERT(varchar(100), GETDATE(), 13) 1507 2009 16:06:26:513
SELECT CONVERT(varchar(100), GETDATE(), 14)16:06:26:513
SELECT CONVERT(varchar(100), GETDATE(), 20)2009-07-15 16:06:26
SELECT CONVERT(varchar(100), GETDATE(), 21)2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100), GETDATE(), 22)07/15/09 4:06:26 PM
SELECT CONVERT(varchar(100), GETDATE(), 23)2009-07-15
SELECT CONVERT(varchar(100), GETDATE(), 24)16:06:26
SELECT CONVERT(varchar(100), GETDATE(), 25)2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100), GETDATE(), 100) 0715 2009 4:06PM
SELECT CONVERT(varchar(100), GETDATE(), 101)07/15/2009
SELECT CONVERT(varchar(100), GETDATE(), 102)2009.07.15
SELECT CONVERT(varchar(100), GETDATE(), 103)15/07/2009
SELECT CONVERT(varchar(100), GETDATE(), 104)15.07.2009
SELECT CONVERT(varchar(100), GETDATE(), 105)15-07-2009
SELECT CONVERT(varchar(100), GETDATE(), 106) 1507 2009
SELECT CONVERT(varchar(100), GETDATE(), 107) 0715, 2009
SELECT CONVERT(varchar(100), GETDATE(), 108)16:06:26
SELECT CONVERT(varchar(100), GETDATE(), 109) 0715 2009 4:06:26:513PM
SELECT CONVERT(varchar(100), GETDATE(), 110)07-15-2009
SELECT CONVERT(varchar(100), GETDATE(), 111)2009/07/15
SELECT CONVERT(varchar(100), GETDATE(), 112)20090715
SELECT CONVERT(varchar(100), GETDATE(), 113) 1507 2009 16:06:26:513
SELECT CONVERT(varchar(100), GETDATE(), 114)16:06:26:513
SELECT CONVERT(varchar(100), GETDATE(), 120)2009-07-15 16:06:26
SELECT CONVERT(varchar(100), GETDATE(), 121)2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100), GETDATE(), 126)2009-07-15T16:06:26.513
SELECT CONVERT(varchar(100), GETDATE(), 130) 23??? 1430 4:06:26:513PM
SELECT CONVERT(varchar(100), GETDATE(), 131)23/07/1430 4:06:26:513PM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值