0

特定の日数で表に追加された学生をリストしたいと思います。

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

しかし、これはうまくいきません。誰か助けてくれませんか?

4

5 に答える 5

5

DATEADD負の増分でそのように差し引かれます。

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

過去15日間に追加されたもの。

于 2012-04-16T13:04:11.260 に答える
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

于 2012-04-16T13:05:21.103 に答える
3

DATEADDこの関数は次のように使用する必要があります。

declare @numberofdays int
set @numberofdays = 15

SELECT S.Name, S.Surname, S.DateAdded
FROM STUDENT S
WHERE S.DateAdded >= dateadd(day, -@NumberOfDays, getdate())

これがsqlfiddleです。

于 2012-04-16T13:05:52.640 に答える
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;
于 2012-04-16T13:07:55.150 に答える
0
SELECT S.Name, S.Surname, S.DateAdded 
FROM STUDENT S 
WHERE (SELECT months_between(GETDATE(), S.DateAdded) = @NumberOfDays) 
于 2012-04-16T13:25:19.513 に答える