Obs:Jag har redigerat detta för att fixa vad jag tror var ett betydande fel. Den aktuella versionen fungerar för mig.
Detta bör fungera efter att du ändrat fält- och tabellnamnen så att de motsvarar din databas.
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))
I grund och botten får den antalet dagar från deras födelsedag till nu, och dividerar det med 365 (för att undvika avrundning av problem som dyker upp när du konverterar direkt till år).
Sedan får den antalet dagar från deras födelsedag till en vecka från och med nu, och dividerar det med 365 för att få deras ålder om en vecka.
Om deras födelsedag är inom en vecka blir skillnaden mellan dessa två värden 1. Så det returnerar alla dessa poster.