日期:2014-05-17  浏览次数:20572 次

把含年份和月份的字符串转成日期
怎样把 像'201308'这样的字符串转成日期并在月份处进行加减运算?
'201301'  减去一个月 得到  '201212'.

------解决方案--------------------
DECLARE @a VARCHAR(10)
SET @a='201301'
SELECT CONVERT(CHAR(6),DATEADD(mm,-1,LEFT(@a,4)+'-'+RIGHT(@a,2)+'-01'),112)

/*
201212
*/

------解决方案--------------------
select dateadd(mm,-1,cast('201308'+'01' as datetime))
------解决方案--------------------
这个只能是
1.先转化为日期,然后再处理,在转化为日期的时候,就是加上‘01’就可以。

2.然后,减去1个月

3.再转化为 字符

比如:

select convert(varchar(6),dateadd(month,-1,'201308'+'01'),112)
/*
201307
*/