Я пытаюсь написать хранимую процедуру, чтобы выбрать сотрудников, у которых есть дни рождения, которые наступают.
SELECT * FROM Employees WHERE Birthday > @Today AND Birthday < @Today + @NumDays
Это не сработает, потому что год рождения является частью дня рождения, поэтому, если мой день рождения был '09 -18-1983 ', который не будет находиться между '09 -18-2008' и '09 -25-2008 '.
Есть ли способ игнорировать годовую часть полей даты и просто сравнивать месяц/сутки?
Это будет выполняться каждое утро утра, чтобы предупредить менеджеров о предстоящих днях рождения, поэтому он, возможно, будет охватывать новые годы.
Вот рабочее решение, которое я создал, благодаря Kogus.
SELECT * FROM Employees
WHERE Cast(DATEDIFF(dd, birthdt, getDate()) / 365.25 as int)
- Cast(DATEDIFF(dd, birthdt, futureDate) / 365.25 as int)
<> 0