Забележка:Редактирах това, за да коригирам това, което смятам, че е значителна грешка. Публикуваната в момента версия работи за мен.
Това трябва да работи, след като промените имената на полетата и таблиците, за да съответстват на вашата база данни.
SELECT
BRTHDATE AS BIRTHDAY
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25) AS AGE_NOW
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25) AS AGE_ONE_WEEK_FROM_NOW
FROM
"Database name".dbo.EMPLOYEES EMP
WHERE 1 = (FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25))
-
(FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25))
По принцип той получава броя дни от рождения им ден до момента и го разделя на 365 (за да се избегнат проблеми със закръгляването, които възникват, когато преобразувате директно в години).
След това получава броя дни от рождения им ден до една седмица от сега и го разделя на 365, за да получи възрастта им след седмица.
Ако рожденият им ден е в рамките на една седмица, тогава разликата между тези две стойности ще бъде 1. Така че връща всички тези записи.