t-sql select get all Months within a range of years

前端 未结 8 587
悲哀的现实
悲哀的现实 2020-12-18 05:06

I need a select to return Month and year Within a specified date range where I would input the start year and month and the select would return month and year from the date

8条回答
  •  南笙
    南笙 (楼主)
    2020-12-18 06:00

    declare @date1 datetime, 
        @date2 datetime, 
        @date  datetime, 
        @month integer, 
        @nm_bulan varchar(20) 
    
    create table #month_tmp 
        ( bulan integer null, keterangan varchar(20) null ) 
    
    select @date1 = '2000-01-01', 
           @date2 = '2000-12-31' 
    
    select @month = month(@date1) 
    
    while (@month < 13) 
    Begin 
        IF @month = 1 
        Begin 
           SELECT @date  = CAST( CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,0,@date1))-1),DATEADD(mm,0,@date1)),111) + ' 00:00:00' as DATETIME ) 
        End
        ELSE
        Begin
           SELECT @date  = CAST( CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,@month -1,@date1))-1),DATEADD(mm,@month -1,@date1)),111) + ' 00:00:00' as DATETIME ) 
        End
        select @nm_bulan = DATENAME(MM, @date)
    
        insert into #month_tmp
        select @month as nilai, @nm_bulan as nama 
    
        select @month = @month + 1
    End 
    
    select * from #month_tmp 
    drop table #month_tmp 
    go
    

提交回复
热议问题