от
Данные в формате даты / времени, и я пытаюсь получить список строк, где дата находится точно в 30 дней с сегодняшнего дня. Это основано на SQL Server 2005. Поэтому 1 июля я бы получил список строк, в которых дата - 1 августа. Пример записи будет:   Воскресенье, 4 июля 1993 года, 12:00 Однако мой запрос по какой-то причине вообще не возвращает никаких строк.
AND DATEPART("month", a.PersonBirthdate) = DATEPART("month", GetDate())
AND DATEPART("day", a.PersonBirthdate) = DATEPART("day", GetDate() 30)
Например, приведенная ниже часть запроса работает нормально, чтобы получить список строк, где дата сегодня:
AND DATEPART("month", a.PersonBirthdate) = DATEPART("month", GetDate())
AND DATEPART("day", a.PersonBirthdate) = DATEPART("day", GetDate())
             

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Для расчета сегодня плюс 30 дней как
Date
вы можете использовать:
DateAdd( day, 30, Cast( GetDate() as Date ) )
Обратите внимание, что если вы пытаетесь получить строки по столбцу
DateTime
, которые имеют эту дату, вы должны использовать:
where DateAdd( day, 30, Cast( GetDate() as Date ) )
...