select datediff(day,getdate(),dateadd(month,1,getdate()))

解决方案 »

  1.   

    select '本月天数'=day(dateadd(dd,-1,cast(convert(varchar(6),dateadd(mm,1,getdate()),112)+'01' as datetime)))
      

  2.   

    我改:
    select '本月天数'=datediff(dd,getdate(),dateadd(mm,1,getdate()))
      

  3.   

    or:DATEDIFF(dd,convert(datetime,@BeginYear+'-'+@BeginMonth+'-01'),DATEADD(mm,1,convert(datetime,@BeginYear+'-'+@BeginMonth+'-01')))----------------其中@BeginYear表示年,@BeginMonth表示月
      

  4.   

    txlicenhe(马可) 的方法是错的!
      

  5.   

    正确的方法是:
    select datediff(day,cast((convert(char(7), getdate(), 120)+'-01') as datetime),dateadd(month, 1, cast((convert(char(7), getdate(), 120)+'-01') as datetime)))
      

  6.   

    或者这样:
    select datediff(day,
    dateadd(mm, datediff(mm,'',getdate()), ''),
    dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))