加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLserver中用convert函数转换日期格式

发布时间:2020-12-12 15:02:18 所属栏目:MsSql教程 来源:网络整理
导读:http://www.cnblogs.com/blueskyc/archive/2009/12/11/1621936.html ? ? SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换

http://www.cnblogs.com/blueskyc/archive/2009/12/11/1621936.html

?

?

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

例如:

select getdate()

2004-09-12 11:06:08.177

整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

举例如下:

select CONVERT(varchar,getdate(),120 )

2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar,120 ),'-',''),' ',':','')

20040912110608

select CONVERT(varchar(12),111 )

2004/09/12

select CONVERT(varchar(12),112 )

20040912

select CONVERT(varchar(12),102 )

2004.09.12

select CONVERT(varchar(12),101 )

09/12/2004

select CONVERT(varchar(12),103 )

12/09/2004

select CONVERT(varchar(12),104 )

12.09.2004

select CONVERT(varchar(12),105 )

12-09-2004

select CONVERT(varchar(12),106 )

12 09 2004

select CONVERT(varchar(12),107 )

09 12,2004

select CONVERT(varchar(12),108 )

11:06:08

select CONVERT(varchar(12),109 )

09 12 2004 1

select CONVERT(varchar(12),110 )

09-12-2004

select CONVERT(varchar(12),113 )

12 09 2004 1

select CONVERT(varchar(12),114 )

11:06:08.177

?

select getdate()

结果:2003-12-28 16:52:00.107

select convert(char(8),112)

结果:20031228

select convert(char(8),108)

结果:16:52:00

select convert(char(8),112)

?

???????????????????????????? 指日期格式

规则如下:

?

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

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。对于从 datetimesmalldatetimecharacter 数据的转换,输出格式如表中所示。对于从 floatmoneysmallmoneycharacter 数据的转换,输出等同于 style 2。对于从 realcharacter 数据的转换,输出等同于 style 1。

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读