我正在尝试从我的数据库中获取未来几天即将出生的人的数据(早些时候声明)它可以正常工作几天但是如果我将 24 天添加到当前日期原因而不是需要更改,则此查询将不起作用月。我想知道我该怎么做
declare @date int=10,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between
DATEPART(DD,GETDATE()) and DATEPART(DD,DATEADD(DD,@date,GETDATE()))
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))
此查询工作正常,但它只检查 8 和 18 之间的日期
但如果我这样使用它
declare @date int=30,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between
DATEPART(DD,GETDATE()) and DATEPART(DD,DATEADD(DD,@date,GETDATE()))
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))
它不会返回任何内容,因为它也需要在一个月内添加
如果我这样使用它
declare @date int=40,
@month int=0
select * from STUDENT_INFO where DATEPART(DD,STDNT_DOB) between
DATEPART(DD,GETDATE()) and DATEADD(DD,@date,GETDATE())
and
DATEPART(MM,STDNT_DOB) = DATEPART(MM,DATEADD(MM,@month,GETDATE()))
比它将在本月最后一天返回结果,但直到 18/12 才会显示,这是必需的