SQL Server日期格式化

在SQL Server里面经常使用getdate()函数来获取当前时间,它精确到秒,比如查询:select getdate();得到的结果为:2016-06-24 11:36:01.120。但是大部分时候我们只需要知道日期,且是规定格式的日期。此时就需要用CONVERT()函数了。

1、CONVERT()函数的定义和用法:
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。

2、CONVERT()函数的语法:
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。


3CONVERT()函数第三个参数style的值:

Style ID

标准

Style 格式

举例输出

CONVERT(VARCHAR(30),GETDATE(),id);

100 / 0

Default

mon dd yyyy hh:miAM (或者 PM

06 24 2016 11:43AM

101/1

USA

mm/dd/yy

101:06/24/2016

1: 06/24/16

102/2

ANSI

yy.mm.dd

102:2016.06.24

2: 16.06.24

103/3

British/French

dd/mm/yy

103: 24/06/2016

3: 24/06/16

104/4

German

dd.mm.yy

104: 24.06.2016

4: 24.06.16

105/5

Italian

dd-mm-yy

105: 24-06-2016

5: 24-06-16

106/6

 

dd mon yy

106: 24 06 2016

6: 24 06 16

107/7

 

Mon dd, yy

107: 06 24, 2016

7: 06 24, 16

108/8

 

hh:mm:ss

11:55:15

109/9

Default + milliseconds

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

06 24 2016 11:56:19:250AM

110/10

USA

mm-dd-yy

110: 06-24-2016

10: 06-24-16

111/11

JAPAN

yy/mm/dd

111: 2016/06/24

11: 16/06/24

112/12

ISO

yymmdd

112: 20160624

12: 160624

113/13

Europe Default + milliseconds

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

24 06 2016 12:01:02:610

114/14

 

hh:mi:ss:mmm(24h)

12:01:46:353

120/20

 

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

2016-06-24 12:02:40

121/21

 

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

2016-06-24 12:03:34.793

126

 

yyyy-mm-ddThh:mm:ss.mmm(没有空格)

126: 2016-06-24T12:04:33.930

130

 

dd mon yyyy hh:mi:ss:mmmAM

19 ????? 1437 12:08:31:213PM

131

 

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

19/09/1437 12:08:31:213PM

 

4、补充:
a、几个特殊的:
select getdate():2016-06-24 12:21:08.623(convert函数中121的格式)
select convert(varchar(10),getdate()):06 24 2016(那种格式都不是,100/0的格式有小时和分钟)


b、当CONVERT()函数传入不存在的Style ID则会报错,比如查询“SELECT CONVERT(VARCHAR(30),GETDATE(),26)”就会报错:从 datetime 转换为字符串时,26 不是有效的样式号。


c、这里的varchar(30),指的是获取的字符段的个数(为了让所有的字符串都显示出来所以定义的比较大),比如原本是2016-06-24 12:03:34.793,为了只获取2016-06-24字段,算了下,一共10个字符,所以选择varchar(10),又比如为varchar(7),则为2016-06,又比如:varchar(4),则为2016了。

参考链接:
1、百度知道:SQL获取日期的所有格式:http://zhidao.baidu.com/link?url=-f3UwbhFjUct6VoRS1B8ASeeYIiQd4PZazJWwtjZbE9hyQ0sAu9Suw-WYwI0YUJZHls6L9_QnFphUvZjv9Up_K
2、W3School:SQL Server CONVERT() 函数:http://www.w3school.com.cn/sql/func_convert.asp

猜你喜欢

转载自1017401036.iteye.com/blog/2307092