我有一个包含两列生日和周年纪念的表格。我想在 7 天的时间段内收到有关生日和周年纪念日的警报,但是,这不应该包括年份(显然,如果我包括年份,它总是会小于当前日期)。我想提前 7 天收到警报。
也就是说,查询应该将生日和周年纪念日与当前日期进行比较,如果他们的生日或周年纪念日在同月的 7 天之间,则返回一个列表,以便提前提醒我即将到来的生日和周年纪念日。
最佳答案
从现在减去请求日期的年份差,然后使用 datediff 计算结果与请求日期的日期差。
SELECT *
FROM Table
WHERE DATEDIFF(dd,DATEADD(yyyy,-DATEDIFF(yyyy,Birthday,GETDATE()),GETDATE()),Birthday) BETWEEN 0 AND 7
OR DATEDIFF(dd,DATEADD(yyyy,-DATEDIFF(yyyy,Anniversary,GETDATE()),GETDATE()),Anniversary) BETWEEN 0 AND 7
关于sql - 比较 sql server 中的日期和月份以获取警报系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396237/