2012-04-16 11 views
0

テーブルに追加した生徒を特定の日数でリストしたいと思います。2つの日付を引く

@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) 

しかし、これはうまくいきません。誰でも私を助けてくれる?

答えて

5

DATEADDネガティブのインクリメントは負の値になります。

where S.DateAdded >= dateadd(day, [email protected], getdate()) 

過去15日間に追加されたものについては、

3

あなたは、関数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 

http://msdn.microsoft.com/en-us/library/ms189794.aspx

3

あなたはDATEADDを使用する必要がありますこのように機能する:

declare @numberofdays int 
set @numberofdays = 15 

SELECT S.Name, S.Surname, S.DateAdded 
FROM STUDENT S 
WHERE S.DateAdded >= dateadd(day, [email protected], getdate()) 

これはsqlfiddleです。

0

これはどうですか?

SQLでdatediff関数を使用して、日数の差分を得ることができます。

DECLARE @numberofdays as int 
set @numberofdays = 15 

SELECT S.Name, S.Surname, S.DateAdded 
from STUDENT S 
where datediff(dd,S.DateAdded,getdate())= @numberofdays; 
0
SELECT S.Name, S.Surname, S.DateAdded 
FROM STUDENT S 
WHERE (SELECT months_between(GETDATE(), S.DateAdded) = @NumberOfDays) 
+0

ヶ月の間に?これは良いことではありません。 mssqlとの間に何ヶ月もありません –