当前位置: 代码迷 >> Sql Server >> 这个有关问题哪位高手会!
  详细解决方案

这个有关问题哪位高手会!

热度:19   发布时间:2016-04-27 12:36:54.0
这个问题谁会!!!!!!!
求给定时间段之间的月份,包括给定时间所在的月份,如09年03到10年01,出现03,04。。。01,用一段select 实现,不用临时表,变量来实现的,

------解决方案--------------------
SQL code
declare @d1 datetime,@d2 datetimeset @d1='2009-03-01'set @d2='2010-01-01';with cte(d,d1) as(select convert(varchar(2),datepart(mm,@d1)) as d,@d1 as d1union allselect convert(varchar(2),datepart(mm,dateadd(mm,1,a.d1))) as d, dateadd(mm,1,a.d1) as d1 from cte a where convert(varchar(7),a.d1,120)<convert(varchar(7),@d2,120))select * from cte/*d    d1---- -----------------------3    2009-03-01 00:00:00.0004    2009-04-01 00:00:00.0005    2009-05-01 00:00:00.0006    2009-06-01 00:00:00.0007    2009-07-01 00:00:00.0008    2009-08-01 00:00:00.0009    2009-09-01 00:00:00.00010   2009-10-01 00:00:00.00011   2009-11-01 00:00:00.00012   2009-12-01 00:00:00.0001    2010-01-01 00:00:00.000(11 行受影响)*/
  相关解决方案