Ris*_*god 11 sql t-sql sql-server datetime sql-server-2005
我有一个存储过程,必须接受一个月作为int(1-12)和一年作为int.鉴于这两个值,我必须确定该月的日期范围.所以我需要一个datetime变量来表示该月的第一天,另一个datetime变量来表示该月的最后一天.有没有一种相当简单的方法来获取此信息?
Mar*_*ith 15
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,DATEADD(year,@Year-1900,0))) /*Last*/
Run Code Online (Sandbox Code Playgroud)
但是你需要什么作为本月最后一天的时间组件?如果你的日期时间有午夜以外的时间成分你可能会做更好的事情
WHERE COL >= DATEADD(month,@Month-1,DATEADD(year,@Year-1900,0))
AND COL < DATEADD(month,@Month,DATEADD(year,@Year-1900,0))
Run Code Online (Sandbox Code Playgroud)
这样,如果最终迁移到SQL Server 2008和更高精度的datetime数据类型,则代码将继续工作.
| 归档时间: |
|
| 查看次数: |
79020 次 |
| 最近记录: |