Sql 减去两个日期

Sql 减去两个日期,sql,tsql,Sql,Tsql,我想列出在表中添加的学生的具体天数 @NumberOfDays INT = 15 -- When I list them the added subtraction result must match this result SELECT S.Name, S.Surname, S.DateAdded FROM STUDENT S WHERE (SELECT CAST(GETDATE()-S.DateAdded) = @NumberOfDays) 但这根本不起作用。有人能帮我吗?DATEADD

我想列出在表中添加的学生的具体天数

@NumberOfDays INT = 15 -- When I list them the added subtraction result must match this result

SELECT S.Name, S.Surname, S.DateAdded
FROM STUDENT S
WHERE (SELECT CAST(GETDATE()-S.DateAdded) = @NumberOfDays)

但这根本不起作用。有人能帮我吗?

DATEADD
如果是负增量,则将扣除此费用

where S.DateAdded >= dateadd(day, -@NumberOfDays, getdate())

对于过去15天内添加的任何内容。

您应该使用函数DATEDIFF(Transact-SQL),以下操作应该有效:

DECLARE @NumberOfDays INT = 15 -- When I list them the added subtraction result must match this result

SELECT S.Name, S.Surname, S.DateAdded
FROM STUDENT S
WHERE DATEDIFF(day, S.DateAdded, GETDATE()) = @NumberOfDays
有关此功能的详细信息:

您需要以以下方式使用该功能:

declare @numberofdays int
set @numberofdays = 15

SELECT S.Name, S.Surname, S.DateAdded
FROM STUDENT S
WHERE S.DateAdded >= dateadd(day, -@NumberOfDays, getdate())
这是它的一个附件。

这个怎么样

您可以使用sql中的函数以天为单位获取日期差

DECLARE @numberofdays as int
set @numberofdays = 15

SELECT S.Name, S.Surname, S.DateAdded
from STUDENT S
where datediff(dd,S.DateAdded,getdate())= @numberofdays;

两个月之间?这不好。在mssql中没有几个月的时间,我们在这里讨论的是几天
SELECT S.Name, S.Surname, S.DateAdded 
FROM STUDENT S 
WHERE (SELECT months_between(GETDATE(), S.DateAdded) = @NumberOfDays)