在sql中如何统计每月当中的最后一天是几号

解决方案 »

  1.   

    select @month as month,day =  day(dateadd(day,-1,dateadd(month,1,'1900-' + rtrim(@month) + '-1')))---------------------------------------------------
    declare @month int
    set @month = 1
    while @month <=12
    begin
        select @month as month,day =  day(dateadd(day,-1,dateadd(month,1,'1900-' + rtrim(@month) + '-1')))
        set @month = @month + 1
    end
      

  2.   

    select datepart(day,dateadd(day,-1,convert(varchar(6),dateadd(month,1,getdate()),112)+'01'))
      

  3.   

    的确如楼上指正,更正一下:
    set nocount on
    declare @month int,@year int
    set @year = 2000     
    while @year < 2010
    begin
        set @month = 1       
        while @month <=12
        begin
            select 
            [datetime] = dateadd(day,-1,dateadd(month,1,rtrim(@year) + '-' + rtrim(@month) + '-1')),
            [LastDay] =  day(dateadd(day,-1,dateadd(month,1,rtrim(@year) + '-' + rtrim(@month) + '-1')))
            set @month = @month + 1    /*指定月*/
        end
        set @year = @year + 1          /*指定年*/
    end
      

  4.   

    SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,0))
    得到本月的最后一天,getdate()可换成其他的日期