declare @dt datetime
set @dt='2002-11-30'if month(@dt)<>month(dateadd(day,1,@dt))
   print '月末'
else
   print '不是月末'

解决方案 »

  1.   

    --求某日期所在年月的最后一天:
    --思路是与下个月一号间隔是否为 0
    declare @dt datetime
    set @dt='2002-11-30'
    select dateadd(day,-1, cast( cast(year(@dt) as varchar) + '-' + cast(month(@dt)+1 as varchar) + '-1' as datetime))
           ,case when datediff(day,dateadd(day,-1, cast( cast(year(@dt) as varchar) + '-' + cast(month(@dt)+1 as varchar) + '-1' as datetime)),@dt) =0 then '月末'
                 else '月中' end