我正在尝试编写一个存储过程来选择即将到来的生日的员工.
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
Run Code Online (Sandbox Code Playgroud)