declare @str varchar(20),@dt datetime set @str='201708' set @str=left(@str,4)+'-'+substring(@str,5,100)+'-1' set @dt=DateAdd(month,-1,@str) select replace(convert(varchar(7),@dt,20),'-','')
with t1(dt) as ( select '201712' union all select '201711' union all select '201707' union all select '201704' union all select '201701' ) select dt, CONVERT(varchar, convert(int, dt)- case when SUBSTRING(dt, 5, 2)='01' then 89 else 1 end) from t1
select * into #Table from(select '201712' a union all select '201711' a union all select '201707' a union all select '201704' a union all select '201701' ) Tselect * from #Tableselect cast(a+'01' as datetime) from #Tableselect replace( convert(varchar(7), dateadd(day, -1,cast(a+'01' as datetime)),121),'-','') from #Tabledrop table #Table
2005 declare @as_date varchar(6) SET @as_date='201708' select convert(varchar(6),dateadd(mm,-1,@as_date+'01'),112)
set @str='201708'
set @str=left(@str,4)+'-'+substring(@str,5,100)+'-1'
set @dt=DateAdd(month,-1,@str)
select replace(convert(varchar(7),@dt,20),'-','')
SELECT CONVERT(VARCHAR(6),DATEADD(MONTH,-1,CONVERT(DATE,@str+'01')),112)
declare @ym varchar(6)=201707
select [本月]=@ym,[上个月]= @ym-1-(1-sign(@ym % 100-1))*88
set @ym=201701
select [本月]=@ym,[上个月]= @ym-1-(1-sign(@ym % 100-1))*88
/*
本月 上个月
201707 201706本月 上个月
201701 201612
*/
(
select '201712' union all
select '201711' union all
select '201707' union all
select '201704' union all
select '201701'
)
select dt, CONVERT(varchar, convert(int, dt)- case when SUBSTRING(dt, 5, 2)='01' then 89 else 1 end) from t1
DECLARE @s VARCHAR(20)='201708'
SELECT Format(EOMONTH(@s+'01',-1),'yyyyMM')
/*
(无列名)
201707
*/
2014 sp2 已经是非常稳定的版本了。http://blog.csdn.net/yenange/article/details/50549937http://blog.csdn.net/yenange/article/details/52980135
2014 sp2 已经是非常稳定的版本了。http://blog.csdn.net/yenange/article/details/50549937http://blog.csdn.net/yenange/article/details/52980135
是的,我是想换新的稳定的版本 可以学更多新的特性。
但是现在项目里面别人都是统一的2008R2,我担心的是到时候会出问题。
就是之前看到你们在讨论用什么版本的帖子我才产生换的想法的。
我是个刚入门的菜鸟,接触这方面不到3个月。
2014 sp2 已经是非常稳定的版本了。http://blog.csdn.net/yenange/article/details/50549937http://blog.csdn.net/yenange/article/details/52980135
是的,我是想换新的稳定的版本 可以学更多新的特性。
但是现在项目里面别人都是统一的2008R2,我担心的是到时候会出问题。
就是之前看到你们在讨论用什么版本的帖子我才产生换的想法的。
我是个刚入门的菜鸟,接触这方面不到3个月。先学习再说, 你不可能在一个公司呆一辈子吧?
另外, 你也可以影响其它人来学习高版本, 你告诉人家新版本有足够的诱惑力时, 他们(包括你的上司)自然会升级高版本的了。
当然, 新版本的好处, 你还得多学习
2014 sp2 已经是非常稳定的版本了。http://blog.csdn.net/yenange/article/details/50549937http://blog.csdn.net/yenange/article/details/52980135
是的,我是想换新的稳定的版本 可以学更多新的特性。
但是现在项目里面别人都是统一的2008R2,我担心的是到时候会出问题。
就是之前看到你们在讨论用什么版本的帖子我才产生换的想法的。
我是个刚入门的菜鸟,接触这方面不到3个月。先学习再说, 你不可能在一个公司呆一辈子吧?
另外, 你也可以影响其它人来学习高版本, 你告诉人家新版本有足够的诱惑力时, 他们(包括你的上司)自然会升级高版本的了。
当然, 新版本的好处, 你还得多学习
要得 版主大大!
select * into #Table
from(select '201712' a union all
select '201711' a union all
select '201707' a union all
select '201704' a union all
select '201701' ) Tselect * from #Tableselect cast(a+'01' as datetime) from #Tableselect replace( convert(varchar(7), dateadd(day, -1,cast(a+'01' as datetime)),121),'-','') from #Tabledrop table #Table
declare @as_date varchar(6)
SET @as_date='201708'
select convert(varchar(6),dateadd(mm,-1,@as_date+'01'),112)