0

このクエリは、特定の日に作成された学生のデータを取得することになっています。ただし、@NumberOfDays に 15 を入力すると、15 日と 14 日のデータが返され、20 を入力すると、今度は 19 日と 20 日のデータが返されます。誰かが私の質問を手伝ってくれますか? 何が間違っているのかわかりません。

SELECT TOP 10 S.Id, S.Name, S.Surname, S.DateCreated
FROM STUDENT S WITH(NOLOCK)
WHERE DATEDIFF(day, CAST(S.DateCreated AS date), CAST(GETDATE() AS date)) = @NumberOfDays
4

2 に答える 2

0
SELECT TOP 10 S.Id, S.Name, S.Surname, S.DateCreated
FROM STUDENT S WITH(NOLOCK)
WHERE DATEDIFF(day, CAST(S.DateCreated AS date), CAST(GETDATE() AS date)) 
Between @NumberOfDays-1 and @NumberOfDays
于 2012-06-26T11:53:23.530 に答える
0

このクエリを使用すると、最終的に機能します。

SELECT TOP 10 S.Id, S.Name, S.Surname, S.DateCreated
FROM STUDENT S WITH(NOLOCK)
WHERE CAST(S.DateCreated AS DATE) = CAST(DATEADD(DAY, -@NumberOfDays, GETDATE()) AS DATE)
于 2012-06-28T10:13:11.023 に答える