加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:42:14 所属栏目:MsSql教程 来源:网络整理
导读:我有一个存储过程必须接受一个月为int(1-12)和一年为int.给定这两个值,我必须确定该月份的日期范围.所以我需要一个datetime变量表示该月的第一天,另一个datetime变量表示该月的最后一天.有一个相当简单的方法来获取这个信息? 解决方法 DECLARE @Month intDEC
我有一个存储过程必须接受一个月为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数据类型,您的代码将继续运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读