SQL Server 2005获取任何一个月的任何月份的第一个和最后一个日期

前端之家收集整理的这篇文章主要介绍了SQL Server 2005获取任何一个月的任何月份的第一个和最后一个日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个存储过程必须接受一个月为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))

以这种方式,如果您最终迁移到sql Server 2008和更高精度的datetime数据类型,您的代码将继续运行.

猜你在找的MsSQL相关文章