日期:2014-05-18  浏览次数:20431 次

convert转换
declare   @Month   nchar(10)
set   @Month   =   convert(nvarchar(10), '2007-12-4 '   ,11)
select   @Month
怎么得不到我想要的月啊,并且   2007-12-4   也没转换过来,应该是12/4/2007的

------解决方案--------------------
select month( '2007-12-4 ')
------解决方案--------------------
declare @Month nchar(10)
set @Month = convert(nvarchar(5),cast( '2007-12-4 ' as datetime),11)
select @Month

------解决方案--------------------

在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。表11.1显示了所有的格式。

表11.1 日期和时间的类型
类型值 标准 输出
0 Default mon dd yyyy hh:miAM
1 USA mm/dd/yy
2 ANSI yy.mm.dd
3 British/French dd/mm/yy
4 German dd.mm.yy
5 Italian dd-mm-yy
6 - dd mon yy
7 - mon dd,yy
8 - hh:mi:ss
9 Default + milliseconds--mon dd yyyy
hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
12 ISO yymmdd
13 Europe Default + milliseconds--dd mon yyyy
hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)

类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).

对表11.1中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

SELECT CONVERT(VARCHAR(30),GETDATE(),111)

在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30
------解决方案--------------------
declare @Month nchar(10)
set @Month = convert(nvarchar(2),cast( '2007-12-4 ' as datetime),11)
select @Month
取到的就是月了哦,嘿嘿!!
------解决方案--------------------
怎么得不到我想要的月啊,并且 2007-12-4 也没转换过来,应该是12/4/2007的
----------------
你到底是想要月,还是12/4/2007

想要月:bill024(咖啡熊) 的方法即可.
否则:
declare @Month nchar(10)
set @Month = convert(nvarchar(10),cast( '2007-12-4 ' as datetime),101)
select @Month