declare @year int,@month int
set @year = 2004
set @month = 2
select dateadd(month,1,cast(@year as char(4))+'-'+cast(@month as varchar(2)) + '-01')-1/*
------------------------------------------------------ 
2004-02-29 00:00:00.000(所影响的行数为 1 行)
*/

解决方案 »

  1.   

    本月的最后一天:
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
      

  2.   

    http://expert.csdn.net/Expert/topic/2685/2685228.xml?temp=.7747614总之,思路都是差不多的,得到下个月的月份再减一天,就得到本月最后一天的日子。
      

  3.   

    select replace(convert(varchar(10),dateadd(month,1,cast('2004'+'-02'+'-01' as datetime))-1,120),'-','.')
      

  4.   


    select convert(nvarchar(10),cast('2004-03-01' as datetime)-1,120)
      

  5.   

    declare @MonthDate char(10)
    select @MonthDate = convert(char(10),dateadd(second, -1, dateadd(day, 1, getdate())),120)
    print @MonthDate
      

  6.   

    格式不对,应是
    select convert(nvarchar(10),cast('2004-03-01' as datetime)-1,102)
      

  7.   

    本月的最后一天:
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))