SQL Select Upcoming Birthdays

Posted by Crob on Stack Overflow See other posts from Stack Overflow or by Crob
Published on 2008-09-17T13:59:40Z Indexed on 2011/01/03 6:53 UTC
Read the original article Hit count: 143

Filed under:
|
|

I'm trying to write a stored procedure to select employees who have birthdays that are upcoming.

SELECT * FROM Employees WHERE Birthday > @Today AND Birthday < @Today + @NumDays

This will not work because the birth year is part of Birthday, so if my birthday was '09-18-1983' that will not fall between '09-18-2008' and '09-25-2008'.

Is there a way to ignore the year portion of date fields and just compare month/days?

This will be run every monday morning to alert managers of birthdays upcoming, so it possibly will span new years.

Here is the working solution that I ended up creating, thanks Kogus.

SELECT * FROM Employees 
WHERE Cast(DATEDIFF(dd, birthdt, getDate()) / 365.25 as int)
    - Cast(DATEDIFF(dd, birthdt, futureDate) / 365.25 as int) 
<> 0

© Stack Overflow or respective owner

Related posts about sql

Related posts about sql-server