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)