我有一个存储过程必须接受一个月为int(1-12)和一年为int.给定这两个值,我必须确定该月份的日期范围.所以我需要一个datetime变量表示该月的第一天,另一个datetime变量表示该月的最后一天.有一个相当简单的方法来获取这个信息?
解决方法
DECLARE @Month int DECLARE @Year int set @Month = 2 set @Year = 2004 select DATEADD(month,@Month-1,DATEADD(year,@Year-1900,0)) /*First*/ select DATEADD(day,-1,DATEADD(month,@Month,0))) /*Last*/
但是,您需要什么作为月份最后一天的时间部分?如果你的datetimes有时间部分不是午夜,你可能会更好的只是做一些类似的事情
WHERE COL >= DATEADD(month,0)) AND COL < DATEADD(month,0))