【发布时间】:2010-09-10 03:46:56
【问题描述】:
我正在尝试编写一个存储过程来选择即将过生日的员工。
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
【问题讨论】:
标签: sql sql-server tsql