Этот запрос предназначен для получения данных студентов, созданных в определенный день. Однако, если я нахожу 15 для @NumberOfDays, он возвращает данные за 15 дней и 14 дней, и если я вхожу 20, на этот раз он приносит 19 и 20 дней данных. Может ли кто-нибудь помочь мне с моим запросом, пожалуйста? Я не знаю, что я делаю неправильно.С моим запросом что-то не так? (DATEDIFF)
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
Я не вижу ничего плохого в том, что - вы можете опубликовать некоторые примеры DateCreated - Я заметил, что вы бросаете его на дату, которая наводит на мысль, что это уже не свидание ... Вы также Дон» t нужно отдать GetDate на дату - он уже возвращает дату – BonyT
Получаете ли вы все записи, созданные на 14-м, соответственно. 19-й день, или только часть из них? Я думаю, что это может быть какая-то проблема с часовым поясом. –
Причина, по которой я использую значение, - это только сравнить день, месяц и год. если я его брошу, он в основном удаляет временную часть значения времени даты. –