利用日期函數組合,無需查閱行事曆即可計算指定年月的天數:
DECLARE @iDays INT
DECLARE @dt VARCHAR(50)
SET @dt = @Year + '-' + @Month + '-01'
SELECT @iDays = DAY(
DATEADD(d, -DAY(DATEADD(m, 1, CONVERT(DATETIME, @dt))),
DATEADD(m, 1, CONVERT(DATETIME, @dt)))
)
PRINT @iDays
@dt 組成該月第一天 (YYYY-MM-01)DATEADD(m, 1, ...) 取得下月第一天DAY(...) 取得下月第一天的「日」數值 (1~31)DATEADD(d, -該日數, 下月第一天) 退回上月最後一天DAY(...) 取得上月最後一天的日數 = 該月天數SELECT DAY(EOMONTH(DATEFROMPARTS(@Year, @Month, 1)))
此技巧相容 SQL Server 2000 以上版本,無需額外函數即可內嵌於預存程序或批次腳本中。