用SQL 语句 列出 两个日期之间的年份和月份

Declare @StartDate varchar(10)
Declare @EndDate  varchar(10)
Set @StartDate='2000-01-01'
Set @EndDate='2003-03-02'
Create Table #YearMonth
(
YM varchar(10)
)
While @StartDate<=@EndDate
Begin
Insert Into #YearMonth(YM) Values(Left(@StartDate,7))
    Set @StartDate=Convert(varchar,DATEADD(M,1,@StartDate),23)
End
Select * From #YearMonth
Drop Table #YearMonth

---------------------------------------我修改了之后的--------------------------------------------------

if exists(select * from sysobjects where xtype='p' and name='MakeTimetb')

drop proc MakeTimetb

Create proc MakeTimetb

@StartDate datetime,

@EndDate datetime

as

begin  

Create Table ##YearMonth(DT datetime)  --全局临时表

While @StartDate<=@EndDate   

Begin    

Insert Into ##YearMonth(DT) Values(@StartDate)  

Set @StartDate=DATEADD(mi,1,@StartDate)  

End end

exec MakeTimetb @StartDate='2000-01-01 00:00:00',@EndDate='2000-01-04 23:59:59'

Select * From ##YearMonth

Drop Table ##YearMonth

原文地址:https://www.cnblogs.com/760044827qq/p/3863592.html