相关文章推荐
踏实的胡萝卜  ·  Sql ...·  1 周前    · 
大力的西瓜  ·  sql ...·  6 天前    · 
淡定的鸭蛋  ·  linux ...·  1 年前    · 
小眼睛的皮带  ·  代码分享 Python | ...·  1 年前    · 
满身肌肉的山羊  ·  glCopyTexSubImage2D ...·  1 年前    · 

查询结果为:

2012-11-26 11:01:38.030

该值默认为 datetime 类型,其中包含了年、月、日、时、分、秒众多信息,并精确到了毫秒级。但如果在查询数据时只想取“年月日”,该如何截取呢?这时候可以使用 convert 函数,将某种数据类型转换为另一种数据类型。

convert 的具体语法如下:

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

参数含义如下:

Ø date_type :转换后的数据类型,如果没有精度定义需要, length 可以省略;

Ø expression :要转换数据类型的 SQL Server 表达式;

Ø style :定义数据类型转换时的格式,下面列举几种常用的格式

年份表示( 2 位)

年份表示( 4 位)

输入 / 输出格式

0 or 100

mon dd yyyy hh:miAM(or PM)

mm/dd/yyyy

yy.mm.dd

dd/mm/yy

dd.mm.yy

dd-mm-yy

dd mon yy

mon dd,yy

hh:mm:ss

mon dd yyyy hh:mi:ss:mmmAM(or PM)

mm-dd-yy

yy/mm/dd

yymmdd

13 or 113

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

hh:mi:ss:mmm(24h)

20 or 120

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

21 or 121

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

举例如下:

1 select convert(varchar,getdate(),100)

查询结果为:

11 26 2012 11:28AM

2 select convert(varchar,getdate(),101)

查询结果为:

11/26/2012

3 select convert(varchar,getdate(),1)

查询结果为:

11/26/12

4 select convert(varchar,getdate(),108)

查询结果为:

13:04:51

5 select convert(varchar,getdate(),111)

查询结果为:

2012/11/26

6 select convert(varchar,getdate(),120)

查询结果为:

2012-11-26 13:06:07

严格来说, convert 不属于日期处理函数,同样也可以对其他数据类型进行转换,只是它经常被用于日期处理中,所以在使用该函数的时候,需要注意要先把日期格式的字符串转换为日期型,然后才能利用 convert 进行日期格式转换,否则就变成字符串转换为字符串,此时的 style 选项是无效的。

举例如下:

declare @dt datetime –- 声明变量 dt 的数据类型为 datetime

set @dt='2012-11-26' –- 为变量 dt 赋值,该日期为 2012 11 26

(1) 将该日期转换为“ dd/mm/yy ”格式,设置 style=103

select convert(varchar,@dt,103)

查询结果为:

26/11/2012

2 )将该日期转换为“ yy/mm/dd ”格式,设置 style=111

select convert(varchar,@dt,111)

查询结果为:

2012/11/26

以上两个例子可以转换成功。

再看下面的例子:

select convert(varchar,'2012-11-26',103)

查询结果为:

2012-11-26

该转换并未成功,因为在此处'2012-11-26'是字符串类型,对其设置任何 style 值均无效。