--根据日期获取当月有几天
DECLARE @Date VARCHAR(10) --某日期
DECLARE @NewDate VARCHAR(10) --下月的第一天
DECLARE @Month INT --当月月数
DECLARE @Day INT --天数
DECLARE @Year INT --当年年数
SET @Date = CONVERT(CHAR,GETDATE(),120) --设置日期为当天(测试用)
SET @Day = DATEPART(DAY,@Date) --获取当天是本月的第几天
SET @Year = DATEPART(YEAR,@Date) --获取当年年数
SET @Month = DATEPART(MONTH,@Date) --获取当月月数
--获取下月月数
SET @Month = @Month + 1
--获取下月的第一天的日期
SET @NewDate = CAST(@Year AS VARCHAR) + '-' + CAST(@Month AS VARCHAR) + '-1'
--当月天数 = 本日期所处当月天数 + 下月第一天日期与本日期之间的差值 - 1
SET @Day = @Day + DATEDIFF(DAY,@Date,@NewDate) - 1
SELECT @Day